关于 javascript:AngularJS – 如何通过车把三元操作添加 HTML 元素?

AngularJS - How do I add an HTML element through a handlebar ternary operation?

注意:我所说的"handlebars"不是指 Handlebars.js,我只是指双花括号。

我有一个表格,我想在其中一个列中显示数据,以及一个额外的 HTML 元素,具体取决于三元运算的结果。

这是我的 td 代码

1
<td>{{item.ProjectNumber}}{{item.DateSubmitted.toString().length > 0 ? null : <span class="error">Incomplete</span>}}</td>

如果我不尝试使其成为元素(而只是显示"不完整"),它可以正常工作。但是当我尝试添加该跨度时,整段代码被添加到 td.

那么如何在把手内部创建一个 HTML 元素呢?


只需制作元素并选择使用 ng-show 隐藏它。

<span class="error" ng-show="item.DateSubmitted.toString()">Incomplete</span>

我通常会保留使用花括号来提供数据,而不是做出决定。如果您绝对必须像这样创建内联元素,则需要告诉您的应用程序信任 HTML,如本 SE 问题中所述。


好的,所以我想出了一种不同的方法。

1
<td>{{factsheet.ProjectNumber}}<span class="{{factsheet.DateSubmitted.toString().length > 0 ? 'hide-error' : 'error'}}">Incomplete</span></td>

我刚刚做了跨度并将三元逻辑放在类.hide-errordisplay:none

的类属性中