ExtJS4 - 跨店模型删除:通过创建模型并设置模型来从商店中删除模型

时间:2015-03-14 16:41:04

标签: extjs4 extjs4.2

美好的一天,为令人困惑的头衔道歉。

我正在构建一个Web应用程序,我有一个网格面板A,它有一个使用模型A的存储A.当用户点击带有ID的某个条目E并单击删除按钮时,我想要发生的是获取商店B,然后删除与所选条目E具有相同ID的条目。

基本上,我正在尝试做的是某种“跨店”模式删除。存储A中的模型被选中,但存储B中的条目被删除。

这是我到目前为止所做的:

var userStore = Ext.getStore('borrowerListStore'); //this is Store B
var model = Ext.ModelManager.create({
}, 'myAppLicationName.model.borrowerList'); //this is Model B

model.set("ID", personID); //person id here is the ID of Entry E selected earlier

Ext.getBody().mask('Starting Client Delete...');

userStore.remove(model); //I remove the model from the store

//then I sync the store
userStore.sync({
    success: function(batch){
        Ext.getBody().unmask();
        console.log('delete user details success');
    },
    failure: function(batch){
        Ext.getBody().unmask();
        console.log('delete user details failure');
    }
});

但是,我被困在屏蔽屏幕上。

我还尝试首先加载商店,然后删除然后同步商店:

userStore.load({
    callback: function() {
        userStore.remove(model);
    }
});

但是,我仍然卡在加载屏幕上。

有没有办法根据模型属性删除跨店模型?我知道我可以获得商店B然后遍历模型,然后删除其ID与用户选择的ID匹配的那个。我的问题是,如果我的商店里有很多记录,那么搜索这些记录需要花费很多时间。

非常感谢任何帮助。谢谢。

1 个答案:

答案 0 :(得分:0)

好吧我是个白痴。

我做了类似的事情:

userStore.getProxy().extraParams = {
    selectedUserID: personID
};

如果selectedUserID被传递,我在php中有一个if-else处理部分,我会在我的Where子句中使用它查询数据库,所以我最终得到1个条目。