我如何从Dojo dstore中删除所有项目?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我如何从Dojo dstore中删除所有项目?相关的知识,希望对你有一定的参考价值。

我无法从dstore中删除所有项目。我正在尝试这样做,似乎应该可以使用,但是最后却失败了:

var TrackableMemory = declare([ Memory, Trackable ]);
var userMem = new TrackableMemory({
    data: {the data...},
    idProperty: '_id'
});    
userMem.forEach(function (userObj) {
    userMem.remove(userObj._id);
});

我在this fiddle中提出了一个有效的(或不起作用的)示例。当找不到最后一条记录时,请参阅控制台的“无法读取未定义的属性'_id'的错误”错误。

我还有其他东西要连接到此商店实例,所以我不能仅仅通过重新定义userMem来重置所有内容。

我在做什么错?如何从dstore中删除所有项目?

答案

原来是修改我要遍历的数组的一个简单的JS数组问题。用简单的for向后循环遍历数组:

userMem.fetch().then(function (users){
    for (var i = users.length - 1; i >= 0; i--) {
        userMem.remove(users[i]._id);
    }           
});
另一答案

这对我有用

// Forget all data
myGrid.store.data = [];

// Refresh the grid
myGrid.refresh();

以上是关于我如何从Dojo dstore中删除所有项目?的主要内容,如果未能解决你的问题,请参考以下文章

Dojo dgrid dstore 集合 - “或”过滤器不起作用

使用 dstore Rest 在查询参数中禁用过滤器

用dstore / Memory存储器存储来填充dijit / form / select

将列添加到 dstore 支持的 dgrid

如何在 dstore 上应用多个过滤器?

如何将一个dojo(TypeScript)项目从codesandbox克隆到我的服务器?