从商店卸载特定类型的所有记录

时间:2013-08-12 10:39:37

标签: ember.js ember-data

我正在尝试执行以下操作:

App.Availablephone.all().forEach(function(phone, index) {
    phone.unloadRecord();
});

不幸的是,由于.all()是一个实时数组,因此无效(数组在循环期间被修改,并完全混淆)。

如何从商店中卸载特定类型的所有记录?

2 个答案:

答案 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();
})