0

我有一個對象,看起來像這樣:伍重複意想不到的多個重複

enter image description here

所以基本上我不知道物體的長度,我用下面的代碼來呈現結果:

<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屬性的對象。

與上文所表示的對象預期結果:

enter image description here

當前結果:

enter image description here

如果我添加第三元素的對象,我得到:

enter image description here

FIDDLE:http://jsfiddle.net/UuzZT/

回答

1

您的HTML一個簡單的語義錯誤,特別是ng-repeat-start元素不包裹<td>所以<td>各個即使ng-if有時間顯示出來。這裏更正:

http://jsfiddle.net/UuzZT/1/

然而,有一個事實,即您要遍歷一個對象而產生的其他問題;對象沒有序數屬性。

+0

任何建議如何用'主要= TRUE'對象永遠是第一位? – Deepsy

+0

我切換到數組而不是對象,並且有一些改變我修復了我的問題,謝謝。 – Deepsy

0

你的第一個錶行不包括表數據(外TR TD)

你的代碼改成這樣:

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