0

我正在为我的混合科尔多瓦应用程序使用 Sencha touch v 2.3.0。我们如何循环通过 Sencha 触摸数据存储并更新每条记录?

for (var x = 0 ;x <listStore.data.length;x++){
        var record = listStore.getAt(x);
            console.log('iterate rec at index:'+x+ ' fav list name:'+record.get('favorite_name')+'orderInd:'+record.get('order_index'));
            record.set('order_index',x);
            record.dirty = true;
            listStore.sync();

        });  

这将仅正确更新第一条记录,之后当我更新第二条记录时,仍然引用第一条记录。此外,我已经对字段 order_index 作为 ASC 的数据存储应用了排序。此数据存储用于我已启用拖动和排序的列表。我必须执行此更新 ondragsort 功能

onDragSort:function(list, row, from, to) {
var listStore = Ext.getStore('FavoriteListStore');
    for (x = 0 ;x <listStore.data.length;x++){
        console.log('before drag fav list name:'+listStore.data.items[x].get('favorite_name')+'orderInd:'+listStore.data.items[x].get('order_index'));
    }
for (var x = 0 ;x <listStore.data.length;x++){
        var record = listStore.getAt(x);
            console.log('iterate rec at index:'+x+ ' fav list name:'+record.get('favorite_name')+'orderInd:'+record.get('order_index'));
            record.set('order_index',x);
            record.dirty = true;
            listStore.sync();

        });
}

最初我最喜欢的列表商店有以下数据

name:Steel order_index:0
name:Sample Favorite List order_index:1
name:Electrical Essentials order_index:2

以上数据显示在列表中,现在当我在列表中拖动第三行以将其置于顶部时。下面是我尝试通过迭代设置 order_index 时的控制台

拖动前收藏列表名称:Electrical Essentials orderInd:2 拖动前收藏列表名称:Steel orderInd:0 拖动前收藏列表名称:Sample Favorite List orderInd:1

通过迭代设置 order_index 后,以下是数据存储上的数据,同时迭代在索引处迭代 rec:0 fav 列表名称:Electrical EssentialsorderInd:2 在索引处迭代rec:1 fav 列表名称:Electrical EssentialsorderInd:0 在索引处迭代rec:2 fav 列表名称:电气必需品orderInd:1

我对为什么在进行迭代和更新 orderInd 时未正确获取记录感到困惑。在设置之前,记录正确获取的位置

4

0 回答 0