在ember.js RC5中我能够替换一个ember对象数组中的2个元素,如此
appointments.replace(starting-index, number-of-elements-to-remove);
但是今天实际上并没有“拼出”元素,因为它实际上已经预先实现了1.0
如果我试图破解它并自己拼接阵列,它什么都不做(也没有错误)
[].concat(appointments).splice(starting-index, number-of-elements-to-remove);
从1.0开始,任何人都知道如何从ember对象列表中删除/替换元素?
更新
ember检查器将模型类型显示为DS.RecordArray(使用最新的ember-data 1.0 beta 3)
我尝试了removeAt,但它仍然无法正常工作
这就是我在我的应用程序中填充数组的方式
var appointments = self.store.all('appointment');
答案 0 :(得分:2)
为什么不使用removeAt
?
它具有您需要的相同签名removeAt(start, length)
。
请参阅此处http://emberjs.com/api/classes/Ember.ArrayController.html#method_removeAt
希望它有所帮助。
答案 1 :(得分:1)
这绝对有用,你确定它是一个余烬阵列吗?或者这是一个Ember Data RecordArray?
http://emberjs.jsbin.com/aKonIk/1/edit
哦,真正的问题是store.all。它是一个过滤的记录数组。 Filtered Record Arrays的一个特殊属性是它们是实时的,这意味着它们保持最新。 Filtered RecordArray:
**采用类型和过滤器函数,并返回一个实时RecordArray,它在新记录加载到商店或在本地创建时保持最新。
意味着当您删除记录时,它们可能会被重新插入。
我会对此进行测试,但我很确定它会始终与商店中的最新记录保持同步,因此您需要将记录复制到其他阵列,或删除记录来自商店。
<强>更新强>
它似乎仍然有效(至少在我下面简单的例子中)