我想过滤掉所有数量小于 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 documentation 中有详细描述。 .
所以对你来说这变成了:
<tr ng-repeat="product in products | filter:noZeroQuantity">
在 Controller 中:
$scope.noZeroQuantity = function(value, index, array) {
return value.quantity !== 0;
}
我在jsfiddle中写了一个例子.
关于javascript - 简单过滤掉具有特定属性整数值 Angular 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39634148/