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

时间:2015-02-16 20:23:32

标签: dojo dgrid

我无法从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中删除所有项目?

2 个答案:

答案 0 :(得分:2)

原来是一个简单的JS数组问题,修改了我迭代的数组。使用简单的for工作向后循环数组:

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

答案 1 :(得分:0)

这对我有用

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

// Refresh the grid
myGrid.refresh();