我已經閱讀並閱讀了關於這兩種方法的文檔,但是對於我的生活而言,無法計算出爲什麼您可能會使用這兩種方法?BackboneJS collection.reset()vs collection.fetch()
有人可以給我一個基本的代碼情況,其中一個應用程序,另一個不會。
我已經閱讀並閱讀了關於這兩種方法的文檔,但是對於我的生活而言,無法計算出爲什麼您可能會使用這兩種方法?BackboneJS collection.reset()vs collection.fetch()
有人可以給我一個基本的代碼情況,其中一個應用程序,另一個不會。
reset()用於用新數組替換集合。例如:
@collection.reset(@full_collection.models)
將加載@full_collections車型,但是
@collection.reset()
將返回空的集合。 並且fetch()函數返回模型的默認集合
我們假設您已閱讀documentation,否則這裏有點混淆。
如果你看看fetch和reset文檔,它說的是,假設你指定的collection
的url
財產 - 這可能會指向一些服務器代碼,並應返回json
陣列的models
,和你想要collection
被填充models
被退回,您將使用fetch
。
例如你正在從服務器返回的集URL以下JSON:
[{
id : 1,
name : "a"
}, {
id : 2,
name : "b"
}, {
id : 3,
name : "c"
}]
後成功提取,這將創造您的收藏3種型號。如果您尋找collection fetch
here的代碼,您將看到提取會得到響應,並在內部根據指定的選項調用reset
或add
。
因此,回到討論中,reset
假設我們已經有json of models
,我們想要存儲在集合中,我們將它作爲參數傳遞給它。在你的生活中,如果你想要更新系列並且你已經擁有客戶端的模型,那麼你不需要使用fetch
,reset
就可以完成你的工作。
因此,如果您想在同一JSON集合中充滿復位的幫助下,你可以做這樣的事情:
var _self = this;
$.getJSON("url", function(response) {
_self.reset(response); // assuming response returns the same json as above
});
那麼,這是不是要遵循實踐中,這種情況下fetch
更好,它只是用於例子。
重置的另一個示例是在documentation頁面上。
希望它讓想法一點點,讓您的生活更美好:)
這麼好的,簡潔,完整的答案非常感謝:) – benhowdle89
這個答案是不完整的。是否重置寫入集合中的所有現有模型或什麼? –
@AlexMills是的,它清除,然後設置 – McGarnagle