【发布时间】:2015-08-19 22:19:03
【问题描述】:
我想使用 ng-repeat 根据模板中的输入调用自定义过滤器。 所以如果 myCondition 为真,那么我只想应用我的自定义过滤器切片,否则我不想应用切片过滤器。
<div ng-repeat = "job in userjobs.matched_jobs | slice:'5' && myCondition">
<div ng-include="'applydiv.html'"></div>
</div>
上面的代码不起作用,因为切片过滤器在输入中变为真(5&&myCondition)
我可以在这里破解
<div ng-if="!myCondition">
<div ng-repeat = "job in userjobs.matched_jobs">
<div ng-include="'applydiv.html'"></div>
</div>
</div>
<div ng-else>
<div ng-repeat = "job in userjobs.matched_jobs | slice:'5'">
<div ng-include="'applydiv.html'"></div>
</div>
</div>
但是这样就不会遵循 DRY 原则了! 我在Making an angular filter conditional提出了问题 但我不能在模板中使用语法过滤器:myCustomFilter,所以我需要另一种解决方法。
需要帮助。
【问题讨论】:
-
您可以在过滤器中添加
myCondition逻辑。例如,您可以将 filter 参数转换为使用该条件的函数。 -
@ryanyuyu 是的,您可以说这是我不想做的黑客攻击之一,因为它会影响使用此过滤器的其他人。谢谢回复。
-
好的,是的。我没有任何想法。祝你好运。
标签: angularjs angularjs-filter