Angularjs if-then-else 在表达式中的构造

我可以在angularjs表达式中以某种方式使用if-then-else构造(三元运算符),例如,我有函数$scope.isExists(item)必须返回bool值。我想要这样的东西,

<div ng-repeater="item in items">
    <div>{{item.description}}</div>
    <div>{{isExists(item) ? 'available' : 'oh no, you don't have it'}}</div>
</div>

我知道我可以使用返回字符串的函数,我对使用if-then-else构造到表达式中的可能性很感兴趣。谢谢。


答案 1

Angular 表达式不支持 1.1.5 之前的三元运算符,但可以像这样模拟:

condition && (answer if true) || (answer if false)

因此,在示例中,类似这样的东西可以工作:

<div ng-repeater="item in items">
    <div>{{item.description}}</div>
    <div>{{isExists(item) && 'available' || 'oh no, you don't have it'}}</div>
</div>

更新:Angular 1.1.5 增加了对三元运算符的支持:

{{myVar === "two" ? "it's true" : "it's false"}}

答案 2

从版本 1.1.5 及更高版本开始,您可以使用三元运算符,如这个小 plunker 中所示(1.1.5 中的示例):

出于历史原因(也许将来 plnkr.co 出于某种原因而下降),这是我的示例的主要代码:

{{true?true:false}}