2017-11-23 3 views
0

私は自分のアダプタ/シリアライザを書いています。バックエンドにデータを送信するには、DS.Snapshotと元のEmberオブジェクトの変更を検出する必要があります。通常の属性では、changedAttributes()が可能ですが、hasManyリレーションの変更を検出する方法が見つかりませんでした。Emberのデータスナップショットと変更の検出方法は?

私は、snapshot.hasMany( 'foo')とchangedAttributes()を使って新しい関係を検出できます。しかし、このアプローチは、削除された関係を見つけることができません。

+1

https://stackoverflow.com/questions/43947061/how-to-detect-and-save-relation-change-in-ember-2-13-0 –

+0

私は提案された解決策が嫌いですが、私は正しい方向を指摘しています。 –

答えて

0

Ember(2.x)はリレーション(たとえばhasMany)をトラッキングしませんが、ほぼ可能なember-addon ember-data-change-trackerを使用することは可能です。それは関係の現在の状態を(自動)保存することを可能にし、その後、この '保存された'(=古い状態)を現在の状態と比較することができます。あなたは自分で違いを見つける必要があります。アダプタからの簡単な例:

snapshot.hasMany('users').length <-- current count of relations 
snapshot.record.savedTrackerValue('users').length <-- old count of relations 

私に正しい方向を指してくれたChristoperに感謝します。

関連する問題