2016-11-21 42 views
0

從數據存儲中檢索某些數據時出現奇怪的情況。用戶可以與我的應用程序一起散步並保存此路線。如果用戶想要,他可以保存多條路線。從sencha數據存儲中檢索數據時出現奇怪的情況

保存我COORDS在COORDS存儲和我找回它們是這樣的:

var coordsStore = Ext.getStore("CoordsStore"); 

首先檢查我的店裏有一些記錄:

if(coordsStore.getCount() > 0) 

如果這樣,我會循環這些通過並檢查路線

for(var i = 0; i < coordsStore.getCount(); i++){ 

     var model = coordsStore.getData().getAt(i);  
     var routeModel = model.get("route"); 
    } 

在第一次運行這就是它應該如何去和返回ns所有記錄與路線0.

當第二次運行(在這種情況下,路線1)coords商店返回奇怪的值。我們不再期待路線0的座標和路線1的座標,而只取回路線1的座標。

什麼讓我注意看coordsStore.getData().getAt(i);

的data.all時是包含:

enter image description here

的data.items包含:

enter image description here

你看到路由值是不同的,當使用getAt他以某種方式使用價值es從data.items而不是data.all。

任何想法如何我可以從data.all檢索數據?

+0

時,我通常會在這樣的商店元素的數量:'coordsStore.count()' – AhmadWabbi

+0

嘗試store.sync( )檢查vals –

+0

@George先生試了一下,沒有工作。還有其他建議嗎? –

回答

2

通常與商店記錄一起工作,我更喜歡在商店加載後得到它們,你應該試試這樣。

coordsStore.reload(function(records){ //callback whit records 
    records.forEach(function(record,index){ 
     //you code 
    }); 
}); 

直接從存儲對象獲取記錄可能是一個問題,因爲商店加載異步。

記得叫store.sync()來保存您的商店的變化對矯正

+0

嗨,喬治先生,當我像這樣使用它時,我得到了它的工作:'coordsStore.data.all [i]'。但我會嘗試你的答案,很快就會回來! –

+0

隨着我的代碼,你將永遠保證在商店裏有新的加載記錄,祝你好運! @ Red90 –

+1

嗨!你的解決方案有效:)謝謝! PS。這是btw加載不重新加載:) –

相關問題