在Ember.js内容数组中搜索特定值

时间:2012-03-18 19:17:15

标签: ember.js

在我的应用程序中,我从输入字段中获取搜索词并将其填充到数组中:

guitar
bass
drums

当输入新术语时,我首先要检查它是否已存在于数组中。然后,如果是这样,我想从它的当前位置提取它并将其移动到堆栈的顶部。我相信我已经使用.unshiftObject()处理了最后一部分。我只是想知道是否有一种Ember方式搜索数组。

更新回答我自己的问题

App.recentUsersArray = Em.ArrayController.create({
    content: [],
    addUser: function(name) {
        console.log(this.get('content').contains(name));
        this.pushObject(name);
    }
});

2 个答案:

答案 0 :(得分:2)

通过使用ember,您正在使用jQuery。所以你可以使用jQuery.inArray()

position = jQuery.inArray(name, this.get('content'));
if (position != -1) {
  # The element is in the array
  this.get('content').slice(position, 1);
}
this.get('content').pushObject(name)

答案 1 :(得分:0)

我会使用removeObjectunshiftObject的组合,请参阅http://jsfiddle.net/a3xLb/

App.recentUsersArray = Em.ArrayProxy.create({
    addAndMoveUserToFront: function(username) {
        this.removeObject(username);
        this.unshiftObject(username);
    }
});​