在Backbone.js視圖中的一箇中,我使用this.model.set({ read: true });
更新當前模型(消息實例)的屬性「read」。我證實這個命令只執行一次(我知道「鬼事件」)。正如你在下面看到的,我配置了Collection來激發一個更新事件,其中整個Collection被保存到一個變量中。 不幸的是saveToVar
函數被調用3次而不是1次!此外,第一次saveToVar
被調用,this
正確包含所有的集合的模型,而第二次和第三次this
只有一個模型,即我所做的更新。 我追蹤了一切,但我不知道爲什麼會發生這種情況。Backbone.js多次觸發集合更改事件
window.Message = Backbone.Model.extend({
});
window.MessageCollection = Backbone.Collection.extend({
model: Message,
initialize: function()
{
this.on("change", this.saveToVar);
},
saveToVar: function(e)
{
App.Data.Messages = this.toJSON();
return;
}
});
我將代碼粘貼到jsfiddle.net,但由於某種原因,我無法運行它?實際上從未使用過。 [link](http://jsfiddle.net/hvXbn/3/) – hofimax
我也挖得更深一點,似乎'saveToVar:function(model){App.Data.Messages = model.collection.toJSON(); ''是一項工作。也許這個集合中的this是指模型? – hofimax
但在這裏再次,事件被解僱3次! – hofimax