簡體   English   中英

將新數據追加到骨干關系

[英]Appending new data to the Backbone Relational Relation

我正在嘗試設計一種加載更多類型的系統,每按一次加載更多,就將數據添加到現有集合中。 這是UI外觀的粗略草圖。

除了您每次重新運行

items.fetch

功能:用新數據覆蓋整個集合

我要做什么:我希望將返回的新記錄添加到記錄集合中,而不要覆蓋舊的“記錄”

如何使這項工作有效,以便將新獲取的記錄附加到現有記錄中而不被覆蓋?

在您的fetch調用中添加{ remove: false }

items.fetch({ remove: false, data: { nextId: this.info.get('nextId') } });

這里發生的是Collection#fetch將其模型與服務器返回的數據同步。 這包括添加新模型,更新已經存在的模型以及刪除響應中未包括的模型。

可以使用可用的set選項自定義獲取行為。 例如,要獲取集合,請為每個新模型獲取一個“添加”事件,為每個已更改的現有模型獲取一個“更改”事件,而不刪除任何內容:collection.fetch({remove:false})

可用的set選項包括addremovemerge 將一個(或全部)設置為false將會在fetch禁用該功能。

聽起來您只想要{ remove: false } ,而保留addmerge功能。

我對不熟悉,

但是對於普通集合,可以在parse方法中執行以下操作:

Backbone.Collection.extend({
  parse: function(response){
    // you can update the info here like this.info = response.info or similar
    return _.union(this.toJSON(), response.records);
  }
});

基本上,我們將響應與現有數據合並並返回它,以便在集合更新時維護先前的數據

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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