2011-11-26 23 views
0

我想要更新本地存儲中記錄的值。目前它將添加一個具有相同ID的新記錄,重複。例如,如果函數更新將被執行包含所有id的行(這裏是'test-proxy'),那麼它將被再次附加相同的id。使用Sencha Touch/Ext JS本地存儲重複條目更新值

model.Test = Ext.regModel('model.Test', { 
    idProperty: 'id', 
fields : [ { 
    name : 'id', 
    type : 'integer' 
}, { 
    name : 'name', 
    type : 'string' 
} 
]}); 


//Store 
store = new Ext.data.Store({ 
model : 'model.Test', 
sorters : 'title', 
storeId : 'test', 
proxy: { 
    type: 'localstorage', 
    id : 'test-proxy', 
    idProperty: 'id' 
} 
}); 

updateName = function(id) { 
    store.read(); 
    var item = store.getAt(id-1).data; 

    //toggle 
    item.name = "Update" 
    store.add(item); 
    store.sync(); 
    console.log(store.getAt(id-1)); 
} 
+0

好的問題我看起來更像是緩存或重裝問題。因爲如果我重新加載頁面,一切都很好。問題是舊的(未更新的)數據仍然在Ext.DataView中。瀏覽器重新加載頁面後,只會列出更新的項目。 –

回答

2

好的我找到了這個問題的解決方案。問題與刷新DataView有關。

store.load(); 
listData.refresh(); // will refresh Ext.DataView