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

问题描述 投票:2回答:2

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

dojo dgrid
2个回答
2
投票

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

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

0
投票

这对我有用

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

// Refresh the grid
myGrid.refresh();
© www.soinside.com 2019 - 2024. All rights reserved.