ユーザーが選択した場合にソートされる Ember 選択ビューにバインドされた Ember Array Controller があります。すべてがソートされ、ソートされた配列で配列をリセットすると、ビューは変更されませんが、設定した配列をループすると、ソートされていることが示されます。したがって、ビューはアレイコントローラーで更新されていないと思います。同様の問題を抱えた他の投稿を見ていましたが、それらの解決策はどれもうまくいきませんでした。
dmp: Ember.ArrayController.create(),
tempArray: new Array(),
sort: function() {
debugger;
var self = this;
var textA, textB, i, t, pos, temp;
this.set('tempArray', self.dmp.get('content'));
var nxt;
for(t = 0; t < (self.get('tempArray').length) - 1; t++) {
nxt = this.get('tempArray')[t];
for(i = t; i < self.get('tempArray').length; i++) {
if(self.get('tempArray')[i].name.toUpperCase() <= nxt.name.toUpperCase()) {
nxt = self.get('tempArray')[i];
pos = i;
}
}
temp = self.get('tempArray')[t];
self.get('tempArray')[t] = nxt;
self.get('tempArray')[pos] = temp;
}
//App.defRouteSearch.dmpName.set('content', self.get('tempArray'));
//App.defRouteSearch.dmp.set('content', self.get('tempArray'));
self.setArray();
},
setArray: function() {
debugger;
var a = 0, b = 1;
var self = this;
while(a < this.get('tempArray').length) {
self.get('dmp').toArray[b] = self.get('tempArray')[a];
a++;
b++;
}
}
配列コントローラーと比較してデータを操作する方が速いため、すべてを通常の js 配列に切り替えます。他の 6 つの配列を埋めるときに、コードの残りの部分全体でこれを行うので、問題は発生しません。コメントされたコードは、配列を設定するために以前に行っていたことです。助けてくれてありがとう。