私はおそらく本当にばかげた何かを見逃しています(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 は temp[i].desc の内容を変更する 4 行目で、Ember.Set を使用しなければならないと文句を言っています。「オフライン」コピーを変更して元に戻すことができると思いましたが、うまくいかず、理由がわかりません。シフト/シフト解除/ポップなどの他の配列操作は機能しているようです。