我有以下代码:
<td data-ng-repeat="fld in checkedFields" ng-init="field = result[fld.field]; filter = fld.filter">
<span>
{{ null != filter ? field | filter : field }}
</span>
</td>
我收到以下控制台错误
Error: [$parse:syntax] Syntax Error: Token '|' is unexpected, expecting [:] at column 24 of the expression [null != filter ? field | filter : field] starting at [| filter : field].
有没有人知道如何将AngularJS过滤器与三元运算符表达式一起使用?
注意:fld.filter将是AngularJS过滤器
答案 0 :(得分:4)
在过滤器表达式周围使用圆括号:
func my_makeIncrementer(externNumber:Int) -> (Int -> Int) {
return {
(number:Int)-> Int in
return externNumber + number
}
}
答案 1 :(得分:1)
在Angularjs中, | 用于应用过滤器。请尝试此
{{ null != filter ? (field | filter) : field }}
答案 2 :(得分:0)
在你的|
声明中进行bar,这是行不通的,因为|
是角度的特殊字符(表示应用filter)
如果你试图做一个普通的三元运算符,这就是三元运算符
{{null != filter ? filter : field}}
修改强>
如果您想应用过滤器,则需要在ng-repeat
<td data-ng-repeat="fld in checkedFields | filterExpression" ng-init="field = result[fld.field]; filter = fld.filter">
<span>
{{fld.someProperty}}
</span>
</td>
您无法对正在显示的文本应用过滤器,并希望过滤器应用于列表。如果您要过滤列表,则需要修改代码,以便在ng-repeat处应用过滤器。我已经包含了关于过滤如何工作的链接,我建议查看它以了解正在发生的事情。
答案 3 :(得分:0)
{{ null != filter ? (field || filter) : field }}