我有一个看起来像这样的对象:
所以基本上我不知道对象的长度,我使用以下代码来渲染结果:
<table style="width: 100%" border="0" cellpadding="0" cellspacing="0">
<tr ng-repeat-start="(key, item) in items() track by key" ng-if="item.primary"></tr>
<td first someprop="2">first</td>
<tr ng-repeat-end ng-if="!item.primary">
<td>[NOT] first</tr>
</tr>
</table>
我希望表中的第一个元素(也突出显示)始终是具有primary=true
属性的对象。
上述对象的预期结果:
当前结果:
如果我向对象添加第三个元素,我会得到:
FIDDLE:http://jsfiddle.net/UuzZT/
答案 0 :(得分:1)
您的HTML中存在简单的语义错误,特别是ng-repeat-start
元素未包含<td>
,因此<td>
每次都会显示ng-if
,即使{{1}}是那里。更正在这里:
然而,还有其他问题源于你试图迭代一个对象;对象没有序数属性。
答案 1 :(得分:0)
您的第一个表格行不包括表格数据(td在tr之外)
将您的代码更改为:
<table style="width: 100%" border="0" cellpadding="0" cellspacing="0">
<tr ng-repeat-start="(key, item) in items() track by key" ng-if="item.primary">
<td first someprop="2">first</td>
</tr>
<tr ng-repeat-end ng-if="!item.primary">
<td>[NOT] first</tr>
</tr>