在這裏,我有一個Backbone.js模型 - 聯繫人和一個集合 - 聯繫人作爲模型。我有兩個視圖,其中一個我使用collection來列出所有聯繫人,另一個模型直接顯示一個聯繫人。但是,當我直接使用模型時,我能夠在使用集合中的'change'事件時觸發'change'事件(即使模型中的'all'事件)也未被觸發。我是否在這裏錯過了一些額外的綁定,以使它與集合一起工作?Backbone.js:模型事件在集合中使用時未被觸發
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都收集&單一模型實例()基於該模型的「身份證」更新urlDisplayPicBig & urlDisplayPicSmall。
適用於我(http://jsfiddle.net/ambiguous/xUSLE/),你在做什麼不同? –
我認爲最主要的區別是代替add()我使用fetch從服務器獲取JSON。但是,fetch()在模型和集合中的表現有所不同嗎? – Saneef
['Collection#fetch'](http://documentcloud.github.com/backbone/#Collection-fetch)將創建新的模型實例,將現有模型從集合中移除,因此沒有更改事件; ['型號#fetch'](HTTP://documentcloud.github。com/backbone /#Model-fetch)就地更改模型並確實觸發更改事件。你在集合上調用'fetch'? –