我正在使用Ember的reverseObjects() method,但它没有按预期工作。
我有一个文本输入和一个提交按钮。如果没有reverseObjects方法,所有项目都会按预期顺序添加到列表中。输入新项目时会很奇怪。例如,键入数字1到9,其中每个数字是一个条目应该显示如下列表:
9 8 7 6 五 4 3 2 1
使用reverseObjects时得到的是:
9 7 5 3 1 2 4 6 8
这里发生了什么,我该如何解决?
这是我的js:
谢谢!
var userList = [];
App.AddItemsController = Ember.ObjectController.extend({
actions: {
// item entry form submit
inputSubmit: function(){
var value = this.get('itemName'); // gets text input value
userList.pushObject({
name: value
}).reverseObjects();
document.querySelector('.js-input-add-item').value = ''; // clear input on submit
return userList;
}
}
});
答案 0 :(得分:1)
按下序列号时,每次都会反转数组。所以每次推动然后反转它看起来像:
您可能想尝试:
function(){
var value = this.get('itemName');
userList.pushObject( {name: value} );
document.querySelector('.js-input-add-item').value = '';
return userList.slice().reverseObjects();
}
.slice()用于创建数组的浅表副本;然后反转数组的副本(不是原始数据),这样每次向数组添加内容时,每次都不会翻转顺序。