鑑於

2013-10-21 53 views
3

使用三元運算符的我只是想在一個視圖中使用conditional operator鑑於

<input type="password" ng-model="password" /> 
{{ (password == "qwerty") ? 'PASSED' : 'NOT PASSED' }} 

但它引發的錯誤:

Lexer Error: Unexpected next character at columns 25-25 [?] in expression [ (password == "qwerty") ? 'PASSED' : 'NOT PASSED' ].

我知道我可以用控制器或類似解決問題['true':'PASSED','false':'NOT PASSED'][(password == "qwerty")]但'?'有什麼問題?

小提琴:http://jsfiddle.net/cherniv/KAgrw/

回答

5

非法字符,您需要使用的角度1.1.5 +/1.2 +。你使用哪個版本的角?

+0

啊,1.1.4,我會嘗試現在更新,看看是否它不摧毀我的應用程序 – Cherniv

+0

偉大的,升級是無痛的:D – Cherniv

2

你有

{{ (password == "qwerty") ? 'PASSED` : `NOT PASSED` }} 

,而不是'你應該使用'

+0

你是對的,但它並沒有幫助:http://jsfiddle.net/cherniv/KAgrw/ – Cherniv

3

如果您打算在角使用三元操作,你可以通過改變你的語法從

{{exp ? true : false}} 

{{exp && '<value for true>' || '<value for false'}} 

例子做到這一點:

<div> Total: {{bill.total == 0 && 'test' || 'test2' }} </div> 

http://jsfiddle.net/KAgrw/9/

固定我的小提琴:D

+0

非常漂亮和優雅 – Cherniv

+2

謝謝。是一個intredasting問題:)必須探索這一個。 添加小提琴到我的答案。 – Eon

+0

不錯的解決方案.. – Sabyasachi