我在从 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 中删除所有项目?
最佳答案
结果是一个简单的 JS 数组问题,即修改我正在迭代的数组。使用简单的 for
向后循环数组是可行的:
userMem.fetch().then(function (users){
for (var i = users.length - 1; i >= 0; i--) {
userMem.remove(users[i]._id);
}
});
关于dojo - 如何从 Dojo dstore 中删除所有项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28549700/