gpt4 book ai didi

javascript - Emberjs 过滤器内容以空白内容开头

转载 作者:行者123 更新时间:2023-12-02 18:26:02 26 4
gpt4 key购买 nike

我正在测试过滤器内容,仅显示 X 个结果,我必须使用计数器来执行此操作,因为适配器如何返回数据。

http://jsfiddle.net/eAvET/

当您加载此修改后的示例时,显示 0 数据,但是当您开始输入搜索来源,然后清除它时,结果是正确的。

所以这一行

if(this.get('searchTerm') === '')

if(this.searchTerm === '') // Refered to the controller method

不工作,知道为什么我必须在搜索输入中写入内容,然后清除它才能使其工作吗?开始时应该只返回 2 个结果。

最佳答案

我查看了您的 fiddle ,您的问题是您没有在 PeopleController 上正确指定属性依赖项。我添加了 content.@each 现在它可以工作了。

为什么之前不起作用?此依赖项声明告诉 Ember 每次在该数组中添加或删除对象时更新此计算属性。我不太确定为什么会发生这种情况,因为当内容数组交换为不同的数组时,该属性应该起作用。我认为Ember 正在获取模型 Hook 的结果并将其一一添加到您的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')
});

关于javascript - Emberjs 过滤器内容以空白内容开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18354979/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com