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

8zzbczxx  于 2022-12-16  发布在  Dojo
关注(0)|答案(2)|浏览(173)

我在从数据存储中删除所有项目时遇到了麻烦。我正在尝试这个,看起来应该可以工作,但最后失败了:

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来重置所有东西。
我做错了什么?我怎样才能从数据存储中删除所有项目?

xmakbtuz

xmakbtuz1#

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

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

tjrkku2a2#

这对我很有效

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

// Refresh the grid
myGrid.refresh();

相关问题