2015-01-26 42 views
0

我在过滤作为文本输入的两个值之间的项目。例如,如果我有这样的价值观:在emberjs中的两个值之间进行过滤

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

您的输入是否绑定到任何东西?为了得到值,你需要像'{{input value = lowerBound type ='number'}}' – 2015-01-29 05:14:12

+0

我试着给输入助手添加值,但它不工作。 – FutoRicky 2015-01-29 13:32:58

+0

我建议你制作一个JS Bin来代表你的问题。你只给出了你的代码的孤立位,不足以让任何人真正推荐任何有用的东西。 – 2015-01-29 16:51:16

回答

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的工作版本。您尝试使用lowerBoundupperBound而不是get从表单中获取它们的值。您也尝试使用filterBy不正确:filterBy只适用于简单平等,您需要filter进行更复杂的比较。

+0

如果通过模板中的两个不同的文本输入获取的值将会如何? – FutoRicky 2015-01-27 20:22:06

+0

我增加了我所指的信息,它有帮助吗?我希望用户输入最小和最大年龄并将其过滤掉。我怎样才能得到输入并添加到lowerBound和upperBound变量? – FutoRicky 2015-01-28 20:41:47

相关问题