2

Ember アプリケーションには、次のように機能する 2 つの単純なモデルがあります。

App.Book = DS.Model.extend({
  tags: DS.hasMany('tag')
});

App.Tag = DS.Model.extend({
  books: DS.hasMany('book', { async: true })
});

ユーザーは、UI を介して特定の本にタグを簡単に追加および削除できます。たとえば、ユーザーがタグを削除したときに実行されるコードは次のとおりです。

book.get('tags').removeRecord(tagToRemove);
book.save();

これは、本からタグを削除する際にうまく機能します。ただし、タグ モデル自体はまだ本を参照しています。つまり、逆関係は自動的に更新されません。

編集:

JS Bin ( http://jsbin.com/ucanam/1574/edit ) を実行した後、タグのbooksプロパティが自動的に更新されないのは、{ async: true }渡したオプションが原因のようです。とはいえ、タグには何百万冊もの本が含まれている可能性があり、それらすべてをタグでロードしたくないため、そのオプションを削除する余裕があるかどうかはわかりません。

物事をそのまま機能させる方法はありますか?

4

1 に答える 1

0

Ember Data が両方から「魔法のように」削除する唯一の方法は、レコードを削除した場合です。他のレコードの 1 つからレコードを削除するだけの場合、技術的には、Ember Data は肯定的ではありません。他のレコードからこのレコードへの他の関係を維持したくないということです。

于 2013-10-21T21:39:59.793 に答える