在 AngularJS 的三元运算符中使用过滤器

Posted

技术标签:

【中文标题】在 AngularJS 的三元运算符中使用过滤器【英文标题】:Using filters inside a ternary operator in AngularJS 【发布时间】:2013-06-11 19:23:26 【问题描述】:

当模板中的变量是三元运算的一部分时,有没有一种方法可以对模板中的变量应用过滤器?

<img ng-src=" image_url && image_url|filter:"foo" || other_url ">

在这种情况下,过滤器是一个自定义过滤器,但我不想修改它来处理三元运算(因为过滤器可能会根据使用的位置而有所不同,我不想重新实现该逻辑很多次)。

【问题讨论】:

对我来说,这看起来太复杂了,无法内联。我将创建一个函数,该函数将根据您需要执行的任何逻辑返回 src。 【参考方案1】:

Liviu T. 在大多数情况下可能是正确的:在这种情况下,您希望在范围上创建一个为您返回正确数据的函数。

也就是说,您可以通过将过滤后的表达式包装在括号中:

image_url && (image_url | filter:"foo") || other_url

Fiddle

【讨论】:

以上是关于在 AngularJS 的三元运算符中使用过滤器的主要内容,如果未能解决你的问题,请参考以下文章

Javascript 语法:AngularJS 过滤器

在angularjs中使用三元运算符来设置元素的属性

AngularJS - 我可以根据三元运算符使用数据绑定值吗

如何在 AngularJS 的 ng-init 中使用三元? [复制]

堆叠三元运算符在 Angularjs 表达式中不起作用

AngularJS:三元运算符条件检查中的函数调用