我有一个 Ember 数组控制器,它绑定到 Ember 选择视图,如果用户愿意,它会由用户进行排序。一旦一切都通过我的排序并且我用现在排序的数组重置数组,视图不会改变,但是如果我循环遍历我刚刚设置的数组,它表明它已排序。所以我相信视图不会用数组控制器更新。我正在查看其他有类似问题的帖子,但他们的解决方案都没有为我工作。
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 个数组时在我的其余代码中执行此操作,因此不会造成任何问题。注释代码是我之前设置数组时所做的。谢谢你的帮助。