我正在尝试执行以下操作:
App.Availablephone.all().forEach(function(phone, index) {
phone.unloadRecord();
});
不幸的是,由于.all()
是一个实时数组,因此无效(数组在循环期间被修改,并完全混淆)。
如何从商店中卸载特定类型的所有记录?
答案 0 :(得分:12)
当选定的答案有效时,ember-data会在商店中提供一个unloadAll方法来完成这个问题。
store.unloadAll('availablephone');
这适用于1.0.0 beta版本,链接到源代码如下 https://github.com/emberjs/data/blob/e4e3e3ec6b0289438a6b15c36407369fedf3eb40/packages/ember-data/lib/system/store.js#L717
答案 1 :(得分:4)
您可以使用toArray方法获取现有记录的静态数组。
var array = App.Availablephone.all().toArray();
// Records to unload:
array.forEach(function(item) {
console.log('unloading record: ', item.toString());
item.unloadRecord();
})