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

Can I use a ternary operator with angularjs outside of the class attribute?

我正在使用 AngularJS 遍历 json 对象,并且在处理空值时遇到问题。

我是 Angular 的新手。

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

如果 related 为空:

{
    "related":null
}

我想在它的位置放一个“-1”:

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

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

您可以简单地使用 ng-attr 在评估 {{}} 插值指令后添加自定义属性

标记

<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>

类似于"try to use product.related if it exists. if it doesnt, use -1 insted"

为了完整起见,这是 OP 原始问题 ("how do you use a ternary in a directive") 的答案:

整个 三元语句周围添加 {{}},而不仅仅是变量。例如,这个

<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'.