在视图中使用三元运算符

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` 

你应该使用 ' 而不是 `

【讨论】:

以上是关于在视图中使用三元运算符的主要内容,如果未能解决你的问题,请参考以下文章

视图主体中的 swiftui 三元运算符

如何在剃刀中使用三元运算符(特别是在 HTML 属性上)?

三元运算符问题 SwiftUI

会在每个摘要上执行三元运算符吗?

想不出一种将长三元运算符从我的刀片视图移动到控制器的方法

AngularJS 三元表达式无效