Extjs Ext JS 4.0.7带有本地存储代理的存储

Extjs Ext JS 4.0.7带有本地存储代理的存储,extjs,extjs4,Extjs,Extjs4,我有一个存储和一个本地存储代理。商店已连接到gridpanel。gridpanel工具栏中有一个按钮“全部删除”。此按钮连接到控制器操作,如下所示: var store = Ext.getStore("Conflicts"); console.log(store); store.load({ callback: function(){ console.log(store); store.removeAll(

我有一个存储和一个本地存储代理。商店已连接到gridpanel。gridpanel工具栏中有一个按钮“全部删除”。此按钮连接到控制器操作,如下所示:

var store = Ext.getStore("Conflicts");

    console.log(store);
    store.load({
        callback: function(){
            console.log(store);
                store.removeAll();
                store.sync();
            console.log(store);
        }
    });

    console.log(store);
如您所见,我添加了一些console.log()来查看存储中的内容。我的问题是,从一开始(first console.log())存储中就没有数据。但无论如何,在我的网格中,我看到大约170个项目,它们在商店中,单击removve按钮后,它们从网格中消失,但如果我刷新页面,它们会再次出现。 我还将自动加载和自动同步属性设置为true。console.log()的输出始终保持不变。我尝试了使用和不使用store.load(),但存储区中始终没有我要清空的数据

感谢您的帮助。

众所周知,store.removeAll()实际上不会删除记录,而只是清除存储。小心点,这种行为随着时间的推移而改变

您可以改为使用:

var store = Ext.getStore("Conflicts");

console.log(store);
store.load({
    callback: function(){
        console.log(store);
        store.remove(store.getRange());
        store.sync();
        console.log(store);
    }
});

console.log(store);

这个问题我已经读了好几遍了,但我还是不确定你的问题是什么?提供的代码显示加载时从存储中删除所有记录。。。你到底想达到什么目的?我只是想清理整个商店。我添加了加载功能,以确保加载了我想要删除的所有记录,但仍然遇到了问题。Christophs的回答在某种程度上帮助了我,但我仍然有一些麻烦,正如你在回答下面的评论中所看到的。这对于从商店中删除所有对象很有效,这很好。但是如果我重新加载页面,它就不再工作了。我在firebug“TypeError:id是未定义的,如果(id.isModel){”中得到了错误。我通过查看带有firebug的记录注意到internalId在页面重新加载之前像“ext-record-230”,而在重新加载之后只是“230”。有什么想法吗?如果我在slite manager中打开webappsstore2表,我可能也会感兴趣,我会看到extjs使用“未定义的-(号)”作为关键,也许我已经做了一个错误的标记,以便extjs保存为未定义?在异常上遍历堆栈跟踪。我认为您对已删除的记录执行了一些无效的操作。