ここでは Backbone.js Model - Contact と Collection - Contacts を Model として持っています。2 つのビューがあり、1 つはコレクションを使用してすべての連絡先を一覧表示し、もう 1 つはモデルを直接使用して 1 つの連絡先を表示します。しかし、モデルを直接使用している場合、コレクションで「変更」イベントを使用しているときに「変更」イベントを発生させることができます (モデルの「すべての」イベントでさえも) 発生しません。コレクションで機能させるために、ここで追加のバインドが不足していますか?
var Contact = Backbone.Model.extend({
defaults: {
id: 0,
urlDisplayPicBig: '',
urlDisplayPicSmall: ''
},
initialize: function () {
this.bind('change', this.doSomething);
},
generateUrls: function () { //earlier doSomething()
...
}
...
});
var Contacts = Backbone.Collection.extend({
model: Contact,
...
});
更新 コレクションと単一モデルの両方のインスタンスを使用している間、generateUrls() を実行して、モデルの「id」に基づいて urlDisplayPicBig と urlDisplayPicSmall を更新する必要があります。