我是AngularJS的新手,所以想了解如何做到这一点。
而不是创建几个粗块'过滤器代码,是否可以在转发器中巧妙地拥有多个显示/隐藏过滤器?与AngularJS网站中的自定义过滤器/教程9相比,这将极大地简化了乍一看的可读性,而且代码更少。
类似的东西:
<li ng-repeat="phone in phones | filter:(showIf phone.brand == 'Nexus') | orderBy:orderProp">
{{phone.name}}
<ul>
<li ng-repeat="price in phone.prices | filter:(showIf price < 100)">${{price}}</li>
</ul>
</li>
编辑:
这是否有用?如果没有UL
,我该如何隐藏父LI
?
<li ng-repeat="phone in phones | filter:{brand: 'Nexus'} | orderBy:orderProp">
{{phone.name}}
<ul>
<li ng-repeat="price in phone.prices | filter:{price: < 100}">${{price}}</li>
</ul>
</li>
答案 0 :(得分:0)
请参阅Angular文档中的Filter dev guide。这完全有可能。
您的第一个示例showIf phone.brand == 'Nexus'
最好使用内置过滤器,有点混淆地命名为filter
。
<li ng-repeat="phone in phones | filter:{brand: 'Nexus'}">{{ phone }}</li>
由于<
运算符,您的第二个示例有点复杂,但可以通过使用相同的filter
过滤器和自定义比较器函数,或者通过创建自己的自定义过滤器来解决。 / p>
比较器功能示例:
$scope.lessThan = function(expected, actual) {
return actual < expected;
}
用过:
<li ng-repeat="price in phone.prices | filter:{price: 100}:lessThan">{{price}}</li>