我真的很想理解這裏的概念(而不是接收代碼解決方案)。Backbone.js我想做model.fetch,並將數據反射回來源集合
我有一個由fetch填充的集合。我想從集合中獲取單個模型,從服務器獲取最新數據,然後將來自服務器的數據放回到集合的模型版本中。
用骨幹術語重述文檔:我想確保我有最新的服務器狀態。我不會關心觸發的「變化」事件,因爲我期望模型幾乎每次都會發生變化。取從服務器重置模型的狀態,所以我應該能夠做這樣的事,對不對?:
[僞]
model.fetch();
在獲取成功處理程序調用其中的一個
:
this: collection.add(model, {merge: true});
..or: collection.set(model);
如果這還不足以完成我的任務,我錯過了什麼概念?
編輯 - 添加細節
我打電話取():
controller.model.fetch({
success: function(model){
console.log(model);
updateView();
},
error: function(){
console.error('error fetching contact model');
}
});
成功回調後取()解僱。我可以看到,該模型具有新的數據和圖像已被修改,需要重新下載:
當我打電話給我的功能,更新的觀點,沒有什麼明顯的變化,因爲最新的數據仍然在「改變」的成員......看起來。將最新數據從「更改」成「屬性」成員的標準方式是什麼?這是在文檔中明確的嗎?
必須有別的東西。我的代碼到達了獲取的成功處理程序。模型的「屬性」屬性沒有改變,但現在「已更改」成員有一個新的第0個孩子,並帶有我期待的新值。基於文檔的「[fetch]從服務器重置模型的狀態」,我期待我在改變的[0]中看到的值是「重置模型狀態」並且位於「屬性」成員中。顯然,我誤解或錯過了文檔中的某些內容? – jbobbins
不確定你改變[0]是什麼意思。屬性改變了,或者沒有改變。你能解釋什麼是「第0個孩子」嗎?數據沒有更新,或者我們「更改」事件沒有被觸發? –
在Chrome開發工具中,當我在提取後調用console.log()模型時,該模型有一個屬性成員和一個已更改的成員(以及其他成員)。已更改的成員具有一個子對象「0」,它由與我在屬性中看到的相同的已命名值組成,但它具有從服務器獲取的最新值。如何獲取在模型中找到的最新值,以便我的綁定視圖顯示新值? – jbobbins