[英]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
選項包括add
, remove
和merge
。 將一個(或全部)設置為false
將會在fetch
禁用該功能。
聽起來您只想要{ remove: false }
,而保留add
和merge
功能。
我對主干關系不熟悉,
但是對於普通集合,可以在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.