繁体   English   中英

简单过滤掉具有特定属性整数值 angular 的对象

[英]simple filter out objects with a certain property integer value angular

我想过滤掉数量小于 1 的所有对象,我必须制作一个自定义过滤器才能实现这一点。 我希望有一个比自定义过滤器更简单的解决方案。

以下将无法正常工作:

<tr ng-repeat="product in products | filter: {quantity: '!0'}">

除了 0 之外,这将过滤掉 10,20 等等。

我最终使用了这个自定义过滤器:

app.filter('quantityFilter', function() {
  return function( products) {
    var filtered = [];
    angular.forEach(products, function(product) {
        if(product.quantity > 0 ){
            filtered.push(product);
        }
    });
    return filtered;
  };
});

HTML:

<tr ng-repeat="product in products | quantityFilter">

有没有更顺畅的解决方案? 喜欢(不起作用):

<tr ng-repeat="product in products | filter: {quantity: >0}">

您可以为过滤器使用谓词函数,而不是编写单独的过滤器。 这在 AngularJS文档中有详细描述。

所以对你来说这变成了:

<tr ng-repeat="product in products | filter:noZeroQuantity">

并在控制器中:

$scope.noZeroQuantity = function(value, index, array) {
    return value.quantity !== 0;
}

我在jsfiddle写了一个例子。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM