我正在尝试过滤两个值为文本的值之间的项目。例如,如果我有这个值:
people=[
{
name: 'Ricky',
age: 21
},
{
name: 'Mike',
age: 32
},
{
name: 'Arianna',
age: 23
}
];
在模板中我有这样的东西:
{{input type='number'}}min Age
{{input type='number'}}max Age
我如何才能展示年龄在20到25岁之间的人?通过输入获取值20和25。 jsbin:http://emberjs.jsbin.com/kosoyo/1/edit?html,js
答案 0 :(得分:4)
您没有提供太多上下文,但假设这些值存储在people
:
people.filter(function(person) {
return person.age >= 20 && person.age <= 25;
});
鉴于您的更新,仍然缺乏上下文:
var lowerBound = parseInt(this.get('lowerBound'));
var upperBound = parseInt(this.get('upperBound'));
people.filter(function(person) {
return person.age >= lowerBound && person.age <= upperBound;
});
Here是您的JS Bin的工作版本。您尝试使用lowerBound
和upperBound
而没有get
来自表单的值。您还试图不恰当地使用filterBy
:filterBy
仅适用于简单相等,您需要filter
才能进行更复杂的比较。