2015-01-26 43 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

相關問題