gpt4 book ai didi

javascript - AngularJS。 ng-repeat 中过滤器中的多个条件

转载 作者:行者123 更新时间:2023-12-02 14:40:51 25 4
gpt4 key购买 nike

如果我设置第一个条件,为什么我的条件不起作用。

  1. 我在 PriceTo 中输入了 100 => 我获取了价格 > 100 的所有商品
  2. 我在名称中添加了“App”=> 没有任何变化但我应该获得(价格 > 100)并且(名称包含“App”)的商品。

fiddle :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>

Example

最佳答案

您的过滤功能条件错误。

尝试以下操作:

$scope.productFilter = function (item) {
var result = (!$scope.foodName || item.name.toLowerCase().includes($scope.foodName.toLowerCase())) &&
(!$scope.priceFrom || item.price >= $scope.priceFrom) &&
(!$scope.priceTo || item.price <= $scope.priceTo);

return result;
};

这里是jsfiddle

关于javascript - AngularJS。 ng-repeat 中过滤器中的多个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37029777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com