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

标签 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 中删除所有项目?

最佳答案

结果是一个简单的 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/

相关文章:

javascript - 从 dgrid 内部的 dijit 复选框更改函数中调用父小部件函数

dojo - 使用 dgrid 进行多列排序

javascript - 与 Dojo 验证一起使用时,Chrome 41 密码保存会做出错误的选择

html - Dojo 切换组合按钮

javascript - Dojo - 如何以编程方式修改 dojo-props?

android - 如何在移动网站上使用 dojo 绘制圆环图

javascript - 设置 ContentPane 内容时如何保留旧内容

dojo - 是否可以像在数据网格中一样过滤dgrid中的数据?如果是这样,怎么办?

javascript - 如何摆弄一个简单的 OnDemandList (dgrid)?

javascript - Dgrid更新数据存储