Javascript 我可以在class属性之外使用angularjs的三元运算符吗?

Javascript 我可以在class属性之外使用angularjs的三元运算符吗?,javascript,angularjs,interpolation,Javascript,Angularjs,Interpolation,我正在使用AngularJS遍历一个json对象,并且在处理null时遇到了问题 我是新手 <a href="#" data-mycustom="{{product.related}}">...</a> 我想在它的位置放一个“-1”: <a href="#" data-mycustom="-1">...</a> 尝试了三元运算符,但它没有计算。。。它只是将其显示为纯文本。只需使用ngattr在计算{}插值指令后添加自定义属性即可 标记 &l

我正在使用AngularJS遍历一个json对象,并且在处理null时遇到了问题

我是新手

<a href="#" data-mycustom="{{product.related}}">...</a>
我想在它的位置放一个“-1”:

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


尝试了三元运算符,但它没有计算。。。它只是将其显示为纯文本。

只需使用
ngattr
在计算
{}
插值指令后添加自定义属性即可

标记

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

使用或操作员。此代码将有助于:

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

只要用这个

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


这类似于“尝试使用product.related(如果存在)。如果没有,请使用-1 insted”

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

在整个三元语句(而不仅仅是变量)周围添加
{{}
。比如说这个,

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

应该是

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


否则,Angular将不会解析它——您将获得
product.related
的值,后跟文本
?product.related:“-1”

确保您的angular是最新版本。三元运算符是一个相当新的加法。我很困惑。有几种可供选择的语法,比如
{true:a,false:b}[condition]
,我已经尝试过了,但在三元不起作用的情况下,它们似乎可以工作。你会像其他有棱角的陈述一样使用它。哦。。我的。。天哪。我知道我做错了什么。如果我把这些都放在卷曲的括号里,Tenary很好用。我真的知道我做错了什么,我真的觉得自己很傻。。。但是,此方法更简洁/更短,因此谢谢。我会尽快接受的。很高兴在这里它确实帮助了你,谢谢:)我实际上在{{product.related}的周围有括号,而不是整个十进制,所以我只是有点傻:)@user1447679在那里!修正。虽然其他答案很有用,但我认为这个答案应该被标记为正确答案,因为它专门讨论三元运算符
<a href="#" data-mycustom="{{product.related ? product.related : '-1'}}">...</a>