在使用过滤器的表达式中应用三元运算符

时间:2015-08-21 11:22:38

标签: angularjs

这有效:

{{ boolean ? String1 : String2 }}

这不是:

{{ boolean ? String1 | weirdoFilter : String2 | weirdoFilter }}

如何将过滤器应用于三元表达式?

编辑:也许是单引号?

2 个答案:

答案 0 :(得分:18)

您可以使用括号:

{{ (boolean ? String1 : String2) | weirdoFilter }}

答案 1 :(得分:5)

...如果你在视图中创建了一个函数,那么使用现实生活中的javascript(而不是更有限的角度表达式)来控制你的控制器中的逻辑会变得更容易......

{{ mySpecificThing(String1,String2) }}

...然后在控制器......

$scope.mySpecificThing = function(item1, item2){
    return boolean ? $filter('weirdoFilter')(item1) : $filter('weirdoFilter')(item2);
}

作为一般模式,我认为始终保持逻辑远离模板是有利的。