我正在尝试执行以下操作:
App.Availablephone.all().forEach(function(phone, index) {
phone.unloadRecord();
});
不幸的是,由于.all()
是一个实时数组,所以这不起作用(数组在循环期间被修改,并且完全混淆了)。
如何从商店中卸载特定类型的所有记录?
我正在尝试执行以下操作:
App.Availablephone.all().forEach(function(phone, index) {
phone.unloadRecord();
});
不幸的是,由于.all()
是一个实时数组,所以这不起作用(数组在循环期间被修改,并且完全混淆了)。
如何从商店中卸载特定类型的所有记录?
虽然选择的答案有效,但 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
您可以使用 toArray 方法获取现有记录的静态数组。
var array = App.Availablephone.all().toArray();
// Records to unload:
array.forEach(function(item) {
console.log('unloading record: ', item.toString());
item.unloadRecord();
})