在视图中使用三元运算符
Posted
技术标签:
【中文标题】在视图中使用三元运算符【英文标题】:Using of ternary operator in view 【发布时间】:2013-10-29 19:09:11 【问题描述】:我只想在视图中使用conditional operator:
<input type="password" ng-model="password" />
( password == "qwerty") ? 'PASSED' : 'NOT PASSED'
但它会抛出错误:
Lexer 错误:在第 25-25 列 [?] 中出现意外的下一个字符 表达式 [ ( 密码 == "qwerty") ? “通过”:“未通过”]。
我知道我可以用控制器或['true':'PASSED','false':'NOT PASSED'][(password == "qwerty")]
之类的东西来解决它,但是“?
”有什么问题?
小提琴:http://jsfiddle.net/cherniv/KAgrw/
【问题讨论】:
【参考方案1】:如果你打算在 Angular 中使用三元运算,你可以通过改变你的语法来做到这一点
exp ? true : false
到
exp && '<value for true>' || '<value for false'
示例:
<div> Total: bill.total == 0 && 'test' || 'test2' </div>
http://jsfiddle.net/KAgrw/9/
修复了我的小提琴:D
【讨论】:
非常漂亮和优雅 谢谢。是一个有趣的问题:) 不得不探索这个问题。在我的答案中添加了小提琴。【参考方案2】:您需要使用角度 1.1.5+/1.2+。您使用的是哪个版本的 Angular?
【讨论】:
aah , 1.1.4 , 我现在尝试更新看看它是否不会破坏我的应用程序 太棒了,升级很轻松:D【参考方案3】:你有非法字符
( password == "qwerty") ? 'PASSED` : `NOT PASSED`
你应该使用 ' 而不是 `
【讨论】:
以上是关于在视图中使用三元运算符的主要内容,如果未能解决你的问题,请参考以下文章