我在获取角度以正确过滤我的结果方面遇到了一些麻烦。我试图使用自定义过滤器从最小输入和最大输入获取参数。具有最小值和最大值的角度过滤器
/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