我在獲取角度以正確過濾我的結果方面遇到了一些麻煩。我試圖使用自定義過濾器從最小輸入和最大輸入獲取參數。具有最小值和最大值的角度過濾器
/index.html
<input ng-model="minHorsepower">
<input ng-model="maxHorsepower">
...
tr(ng-repeat="plane in planes | filter:horsepowerFilter")
/controllers.js
//Horsepower filter
$scope.horsepowerFilter = function(plane) {
var ret = true;
if($scope.minHorsepower && $scope.minHorsepower > plane.horsepower) {
ret = false;
}
if($scope.maxHorsepower && $scope.maxHorsepower < plane.horsepower) {
ret = false;
}
return ret;
};
$scope.planes = [
{
'make' : 'Piper',
'model' : 'Arrow',
'modelNumber' : 'PA-28R-180',
'horsepower' : '180',
'gear' : 'retractable',
},
{
'make' : 'Piper',
'model' : 'Arrow',
'modelNumber' : 'PA-28R-200',
'horsepower' : '200',
'gear' : 'retractable',
}
];
它的工作原理最初,當我在controllers.js設置$ scope.minHorsepower/$ scope.maxHorsepower,但只是起初,不是當我把其他東西放在<input>
中時。此外,它預先填充輸入並過濾結果。當我改變輸入值時,它不能正常工作。
我引用這個堆棧溢出線程,但我找不到我們的代碼進行任何重大差異... AngularJS multiple filter with custom filter function
感謝您的幫助。
通常,當你提供的jsfiddle或plnkr – allenhwkim
這種問題得到quicky回答我建議你確保使用數字。在你的代碼中,你正在比較字符串,它不會像你期望的那樣工作。例如您可以添加零('馬力+ 0')將字符串轉換爲數字。 – Tosh
我做了一個plnkr http://plnkr.co/edit/GnF6IE?p=preview但沒有問題過濾它。你可以發佈你的plnkr嗎? – Daiwei