我看了你的小提琴,你的问题是你没有在你的PeopleController
. 我添加了content.@each
,现在它可以工作了。
为什么以前没有工作?
这个依赖声明告诉 Ember 每次在这个数组中添加或删除一个对象时更新这个计算属性。我不确定为什么会发生这种情况,因为当内容数组被交换为不同的数组时,该属性应该已经起作用。我认为Ember 正在获取您的模型钩子的结果并将其一一添加到您的 ArrayController中。这可以解释这种行为。
App.PeopleController = Em.ArrayController.extend({
searchTerm: '',
filteredContent: function() {
var people = this.get('content');
var search = this.get('searchTerm').toLowerCase();
if(this.searchTerm == '') {
var counter = 0;
return people.filter(function(person) {
if(counter < 2) {
counter ++;
return person;
}
});
} else {
return people.filter(function(person) {
return person.get('firstName').toLowerCase().indexOf(search) !== -1 ||
person.get('lastName').toLowerCase().indexOf(search) !== -1;
});
}
}.property('content', 'searchTerm','content.@each')
});