从sencha数据存储区检索数据时出现奇怪的情况

时间:2016-11-21 13:35:25

标签: javascript extjs touch

从数据存储区检索一些数据时,我遇到了一个奇怪的情况。用户可以使用我的应用程序散步并保存此路线。如果用户愿意,他可以保存多条路线。

我将我的坐垫保存在一个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包含:

enter image description here

data.items包含:

enter image description here

你看到路由值不同,当使用getAt时他会使用data.items中的值而不是data.all。

任何想法如何从data.all中检索数据?

1 个答案:

答案 0 :(得分:2)

通常使用商店记录我喜欢在加载商店后获取它们,你应该尝试这样。

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

直接从商店对象获取记录可能会有问题,因为商店会异步加载。

记得在修改

时调用store.sync()来保存商店的更改