我可能错过了一些非常愚蠢的东西,(Ember 新手)但我不知道如何修改在我的 Ember 控制器管理下的数组,而不是设置一个全新的数组。
例如。我的控制器中有以下测试功能。当用户单击时,我想用新值修改受控数组的每个元素(或者它可以是单个元素)。
我知道您应该通过“设置”来让 Ember 知道更改,所以我认为这会起作用:
clickHandler:function(e){
var temp = this.get("itemList").copy(); // copy it
for (var i = 0; i < temp.length; i++) {
temp[i].desc = "CANCELLED"; // change it
}
this.set('itemList', temp); // put it back
}
我制作了数组的副本,对其进行修改,然后将其重新设置。但不知何故,Ember 抱怨第 4 行,在那里我修改了 temp[i].desc 的内容,说我必须使用 Ember.Set。我以为我可以修改“离线”副本,然后将其重新设置,但不行,我不知道为什么。其他数组操作,如 shift/unshift/pop 似乎可以工作。