簡體   English   中英

骨干模型更新不傳播到集合

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM