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

How can I remove all items from a 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 中提出了一个有效(或无效)的示例。当找不到最后一条记录时,请查看控制台以获取 "cannot read property '_id' of undefined" 错误。

我还有其他东西连接到这个商店实例,所以我不能真的通过重新定义 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();