1

別のコレクションの一部であるコレクションの追加、削除、リセット、変更イベントを聴くことはできますか?バックボーンはコレクションのコレクションの変更イベントをリッスンします

例: 図書のコレクションを持つ図書館。そして、各本は複数の著者を持つことができます。ライブラリモデルの作者のイベントを聞く方法はありますか?

Library.jsはい..しかし、それぞれに

var Library = Backbone.Model.extend({ 
    initialize: function() { 
     this.get('books').on('change:authors', this.onChange); 
    } 
} 

Books.js

var Book = Backbone.Model.extend({ 
}) 
var Books = Backbone.Collection.extend({ 
    Model: Book 
}) 

Authors.js

var Author = Backbone.Model.extend({ 
}) 
var Authors = Backbone.Collection.extend({ 
    Model: Author 
}) 
+0

いくつかの質問を明確にしてください。なぜライブラリは作者の変更を聴かなければならないのですか(これらのイベントではどうなりますか)。あなたのサーバーは、一連の著者(1つのエンドポイント)を備えた書籍の配列全体のデータ構造を提供するか、著者データで各書籍を変更しますか?サーバーに変更を書き戻す必要がありますか(作成者は作成/編集可能ですか)?書籍を変更すると、各書籍の著者をどのように定義しますか(第1の質問)? –

+1

あなたは本当にそれを聞いてネストされたコレクションを考え直すべきです、それは長期的には本当に非効率的で堅牢です。私はコレクションに属性を入れることさえ避けるだろう。モデルにコレクションを入れ子にする方法はさまざまです(https://stackoverflow.com/a/40823148/1218980)、賢明に選択してください。 –

答えて

1

this.get('books').forEach(function(book) { 
    book.get('authors').on('change', this.onChage) 
}); 
関連する問題