2015-04-22 38 views
2

我正在使用AngularJS循环浏览json对象,并且无法处理空值。我可以在class属性之外使用带有angularjs的三元运算符吗?

我是Angular的新手。

<a href="#" data-mycustom="{{product.related}}">...</a> 

在相关被空的事件:

{ 
    "related":null 
} 

我想提出一个 “-1” 在其位:

<a href="#" data-mycustom="-1">...</a> 

试过三元运算符,但它不是评估......它只是将它显示为纯文本。

+0

确保您的角度是最新版本。三元运算符是一个相当新的加法。 –

+0

版本:1.3.15 – user1447679

+2

好吧,我很难过。有几种可选的语法,比如'{true:a,false:b} [condition]',我尝试过并且在三元不存在时似乎工作。你会像使用其他角度语句一样使用它。 –

回答

3

简单,你可以使用ng-attr{{}}插补指令的评价

标记

<a href="#" ng-attr-data-mycustom="{{product.related || '-1' }}">...</a> 
+1

我其实搞清楚我做错了什么,而男孩我会觉得哑巴......但是,这种方法更简洁/更短,所以谢谢。只要它让我接受,就会接受。 – user1447679

+0

很高兴在这里,它确实帮了你,谢谢:) –

0

使用或操作后添加自定义属性。这个代码将有助于:

<a href="#" data-mycustom="{{product.related || -1}}">...</a> 
0

只要使用这个

<a href="#" ng-attr-data-mycustom="{{product.related || '-1' }}">...</a> 

这多少有点像 “尝试使用product.related如果它存在,如果它不使用-1 insted的。”

2

为了完整起见,这是OP原始问题(“你如何在指令中使用三元数”)的答案:

{{}}围绕着整个三元语句,不只是变量。例如,这

<a href="#" data-mycustom="{{product.related}} ? product.related : '-1'">...</a> 

应该

<a href="#" data-mycustom="{{product.related ? product.related : '-1'}}">...</a> 

否则,角不会分析它 - 你会得到product.related价值,其次是文字文本? product.related : '-1'

+0

我实际上已经括号{{product.related}}而不是整个tenary,所以我只是一半愚蠢:) – user1447679

+0

@ user1447679那里!固定。 –

+0

虽然其他答案是有帮助的,但我认为这个答案应该确实被标记为正确的答案,因为它专门讨论三元运算符 – shafeen