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

kyl*_*der 4 javascript ternary-operator angularjs

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

<img ng-src="{{ image_url && image_url|filter:"foo" || other_url }}">
Run Code Online (Sandbox Code Playgroud)

在这种情况下,过滤器是一个自定义过滤器,但我不想修改以处理三元操作(因为过滤器可能会有所不同,具体取决于它的使用位置,我不想多次重新实现该逻辑).

sat*_*run 9

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

也就是说,你可以通过将过滤后的表达式包装在parens中来实现:

image_url && (image_url | filter:"foo") || other_url
Run Code Online (Sandbox Code Playgroud)

小提琴