【问题标题】:Remove record by id from store in extJs/ Sencha从 extJs/Sencha 中的商店中按 id 删除记录
【发布时间】:2017-09-05 02:00:54
【问题描述】:

我想按 ID 删除记录。 例如。 store 包含 RoleId、RoleName 字段。

存储中有很多记录,我有 RoleId 从存储中删除/删除记录。 亲爱的代码我已经尝试过但没有工作..你能给我一些建议吗?

  roleId = Ext.getStore('userStore').first().data.roleId;
                    var roleStore = Ext.getStore('userStore').first().companies().first().roles();
                    roleStore.remove(roleStore.findRecord('roleId', roleId));

也试过了……

  roleId = Ext.getStore('userStore').first().data.roleId;
                    var roleStore = Ext.getStore('userStore').first().companies().first().roles();
                    roleStore.removeAt(roleStore.find('roleId', roleId));

【问题讨论】:

  • 第一件事是缓冲存储?因为缓冲存储不支持这种方法。如果是普通商店,那么您是否得到“roleStore.find('roleId', roleId)”的有效结果?
  • roleId 是 int 还是 string ?如果它是整数,请尝试使用 parseInt 来确保满足比较。据我记得,sencha 在 find 方法中使用 ===。

标签: javascript extjs sencha-touch


【解决方案1】:

你可以直接试试这个,

roleId = Ext.getStore('userStore').first().data.roleId;
var roleStoreItems = Ext.getStore('userStore').first().companies().first().roles().data.items;
roleStoreItems.forEach( function(item,index){
if(item.data.roleId==roleId){
roleStoreItems.remove(index);
}
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-06
    • 1970-01-01
    • 2012-12-21
    • 2017-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-19
    相关资源
    最近更新 更多