我有一个声明,我需要根据条件分配一个变量:
<b>{{ (varA.count > 1 ? {{'varB.status' | localizedString}} : '') }} </b>
其中 {{varB.status | localizedString}} 过滤器&#39; varB.Status&#39;在另一个地方指定的localizedString 如果例如varB.Status是&#34;测试&#34;对于选择的本地化,它将返回&#34;测试&#34;
这给了我
的错误Syntax Error: Token 'varB.status' is unexpected, expecting [:]
答案 0 :(得分:2)
你有语法错误,你不需要插值内插,也不需要不完整的表达。表达式将作为范围本身的属性进行评估,假设varB也在范围内。
只需: -
<b>{{ (varA.count > 1 ? varB.status : '') }} </b>
<强> Demo 强>
如果您想应用过滤器: -
<b>{{ (varA.count > 1 ? (varB.status | localizedString) : '') }} </b>
甚至
<b>{{ (varA.count > 1 ? varB.status : '') | localizedString }} </b>
答案 1 :(得分:0)
试试这个
<b>{{ (varA.count > 1 ? varB.status : '') }} </b>
答案 2 :(得分:0)
{{
和}}
括号允许您在HTML中注入Angular表达式。
<b>outside {{ my_expression }} outside</b>
^^^^^^^^
在上文中,{{...}}
内的文本将转换为Angular表达式。
<b>outside {{ my_expression }} outside</b>
^^^^^ ^^^^^
在上文中,{{...}}
之外的文字将保持不变。
您还可以使用ngBind
指令将表达式的结果分配给DOM元素的主体。
<b ng-bind="mY_expression"></b>
https://docs.angularjs.org/api/ng/directive/ngBind
要显示varB.status
的值,只需写下varA.count > 1 ? varB.status : ''
这样的内容。
<b>{{varA.count > 1 ? varB.status : ''}}</b>
或者,上述内容可以简化为此。
<b>{{varA.count > 1 && varB.status}}</b>
<!-- or -->
<b ng-bind="varA.count > 1 && varB.status"></b>
或者您可以将<b>
设为可选。
<b ng-if="varA.count > 1">{{varB.status}}</b>