问题描述
问题
如何使用 Angular 有条件地在 HTML 表格中插入一行?
关于问题的更多细节
我正在 Node-RED 中使用 Angular,这是我的表格,它遍历对象中的每个键/值:
<table>
<tr>
<td>ID</td>
<td>State</td>
<td>Data</td>
</tr>
<tr ng-repeat="(key,value) in msg.shellies">
<td>{{key}}</td>
<td>{{value.up_since_time}} {{value.up_since_date}})</td>
<td>{{value.data}}</td>
</tr>
</table>
我知道如何有条件地添加任何元素,例如<span>
像这样:
<span ng-if="value.state === 'up'">The device is UP</span>
但显然我不能将表格行包装在 <span>
中(HTML 不会验证),我希望 ng-repeat 应用于表格行。
初步想法
我最初的想法是浏览器会忽略某些 HTML 元素,我可以将 ng-repeat
应用于该元素,将 ng-if
应用于表格行。例如
<magic_invisible_tag ng-repeat="(key,value) in msg.shellies">
<tr ng-if="value.state === 'up'">
<td>.....</td>
</tr>
</magic_invisible_tag>
但这显然不可能在 Stack Overflow 上阅读 various questions。
在 Angular 中是否有其他一些表示法适用于此?
解决方法
尝试过这个之后,似乎可以将 ng-if 指令添加到表格行本身。
我猜 Angular 已经做了工作,以某种方式确保 ng-repeat 指令有效,而不管同一元素中的 ng-if 指令如何。