【发布时间】:2016-08-30 00:17:51
【问题描述】:
如果我将任何条件放在首位,为什么我的条件不起作用。
- 我在 PriceTo 中输入了 100 => 我得到了所有价格 > 100 的商品
- 我在名称中添加了“App” => 没有任何变化 但我应该在 (price > 100) AND (Name contains "App") 处获得商品。
小提琴:http://jsfiddle.net/QHtD8/142/
JS:
var myApp = angular.module('myApp', []);
function MyCtrl($scope) {
$scope.products = [
{name:"Apple",type:"fruit",price:100},
{name:"Grape",type:"fruit",price:500},
{name:"Orage",type:"fruit",price:555},
{name:"Carrot",type:"vegetable",price:1000},
{name:"Milk",type:"dairy",price:800}
];
$scope.productFilter = function (item) {1
var result = item.name === $scope.foodName ||
item.price >= $scope.priceFrom ||
item.price <= $scope.priceTo;
return result;
};
}
HTML:
<div ng-controller="MyCtrl">
Name
<input ng-model="foodName" /><br>
Price from
<input ng-model="priceFrom" /><br>
Price to
<input ng-model="priceTo" /><br>
<ul>
<li ng-repeat="item in products | filter:productFilter">
{{item.name}} - {{item.price}}
</li>
</ul>
</div>
【问题讨论】:
-
错误是什么?小提琴似乎工作正常
-
如示例图像中所示。当我在 PriceTo 中输入 100 时,我得到所有价格 > 100 的项目,然后我在名称中输入“App”,没有任何变化。但我必须获得价格 > 100 且名称包含“App”的项目。
标签: javascript angularjs filter angularjs-ng-repeat angular-filters