[英]Destroy event not propagating from Backbone model to Backbone collection
[英]Backbone model update not propagating to collection
我有一個基本的骨干模型集合。
我正在使用的視圖顯示有關模型的信息,允許進行編輯。
在我的視圖渲染中,我基於傳入的“ id”捕獲模型。
render: function() {
this.model = myCollection.get(this.options.passedInId);
// do the render...
}
然后,我有一個click事件,該事件會更新模型並調用渲染以使用更新重新渲染
updateModel: function() {
var me = this;
this.model.set('someFlag', true);
this.model.save(this.model.toJSON(), {
success: function(model, resp) {
me.render();
}
}
我的問題是,當第二次從集合中獲取返回的渲染時,它又返回了一個不包含更改的“ someFlag”屬性的模型的不同實例(我可以在其中看到不同的cId)。 因此,重新渲染視圖時不會顯示我的編輯。 我知道可能會有更有效的處理方式,但是我的問題是為什么會發生這種情況? 從集合中獲取的模型不應該包括我對該模型所做的編輯?
在此示例中,只有另一件事是“ myCollection”,可能已在編輯后的初始獲取和下一個獲取之間重置,但是id仍然存在,並且它找到的模型只是一個沒有任何更新的模型。
我的問題是該集合在render方法和updateModel方法之間被重置。
這將導致模型與集合不同步,以解決問題,我需要做的就是在重置時綁定並確保我的模型已更新為“新”版本。 我將此添加到我的渲染。
var me = this;
this.collection.on('reset', function () {
me.model = this.get(me.model.id);
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.