如何从Dojo数据存储中删除所有项目?

如何从Dojo数据存储中删除所有项目?,dojo,dgrid,Dojo,Dgrid,从数据存储中删除所有项目时遇到问题。我正在尝试这一点,它似乎应该有效,但最终失败了: var TrackableMemory = declare([ Memory, Trackable ]); var userMem = new TrackableMemory({ data: {the data...}, idProperty: '_id' }); userMem.forEach(function (userObj) { userMem.remove(userOb

从数据存储中删除所有项目时遇到问题。我正在尝试这一点,它似乎应该有效,但最终失败了:

var TrackableMemory = declare([ Memory, Trackable ]);
var userMem = new TrackableMemory({
    data: {the data...},
    idProperty: '_id'
});    
userMem.forEach(function (userObj) {
    userMem.remove(userObj._id);
});
我在中举了一个有效(或者说不有效)的例子。当控制台找不到最后一条记录时,请参阅控制台中的“无法读取未定义属性“\u id”错误

我有其他东西连接到这个商店实例,所以我不能通过重新定义
userMem
来重置所有东西


我做错了什么?如何从数据存储中删除所有项?

原来是一个简单的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();

啊,看起来这可能只是一个JS数组问题。e、 例如,
var a=['a','b','c','d'];a、 forEach(函数(字母){var ind=a.indexOf(字母);a.splice(ind,1);})。现在
a
['b','d']
。看起来这就是dstore使用其
forEach
函数和内存的
removeSync
所做的?