从数据存储区检索一些数据时,我遇到了一个奇怪的情况。用户可以使用我的应用程序散步并保存此路线。如果用户愿意,他可以保存多条路线。
我将我的坐垫保存在一个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");
}
在第一次运行时,它会如何运行并返回路径为0的所有记录。
当进行第二次运行时(在这种情况下为路线1),coords商店返回奇怪的值。我们只回到路线1的坐标,而不是期望路线0坐标和路线1坐标。
在查看coordsStore.getData().getAt(i);
data.all包含:
data.items包含:
你看到路由值不同,当使用getAt时他会使用data.items中的值而不是data.all。
任何想法如何从data.all中检索数据?
答案 0 :(得分:2)
通常使用商店记录我喜欢在加载商店后获取它们,你应该尝试这样。
coordsStore.reload(function(records){ //callback whit records
records.forEach(function(record,index){
//you code
});
});
直接从商店对象获取记录可能会有问题,因为商店会异步加载。
记得在修改
时调用store.sync()来保存商店的更改