我使用ng-repeat
绘制表格线,我目前正在过滤多个文字参数。这是一个带有固定字符串的简化示例
<tr ng-repeat="thisOffer in offerList | filter: {name: 'hotel', id: 'H2O_'}"></tr>
这很好用,现在我想过滤一个数字,测试它是否低于给定值。是否可以使用如下过滤器?我无法在角度文档中找到类似内容,但我无法相信直接的解决方案不存在
<tr ng-repeat="thisOffer in offerList | filter: {name: 'hotel', id: 'H2O_', number: '<5' }"></tr>
<tr ng-repeat="thisOffer in offerList | filter: {name: 'hotel', id: 'H2O_'} | filter: 'thisOffer.number < 5' "></tr>
答案 0 :(得分:3)
应用此答案后,this fiddle为您效劳(灵感来自this answer)
<div ng-app>
<div ng-controller="TodoCtrl">
<ul>
<li ng-repeat="friend in friends | filter: {name: 'John'} | filter: greaterThan('phone', 1)">
<span>{{friend.name}}</span>
<span>{{friend.phone}}</span>
</li>
</ul>
</div>
</div>
答案 1 :(得分:1)
根据https://docs.angularjs.org/guide/filter,您可以链接过滤器,因此您的第二个解决方案应该有效。
如果没有,请提供一个小提琴,以便我可以调查一下
答案 2 :(得分:1)
您需要在相关范围内创建谓词函数,并在ng-repeat中使用它,如:
<tr ng-repeat="thisOffer in offerList | filter: lessThan('Number', 5)""></tr>
答案 3 :(得分:0)
在相关范围内创建一个函数:
$scope.greaterThan = function(prop, val){
return function(item){
return item[prop] > val;
}
}
作为第一个参数,它在对象上采用属性名称。第二个参数是整数值。
在您的视图中使用它:
<tr ng-repeat="thisOffer in offerList | filter: greaterThan('Number', 0)">