0

次のようなオブジェクトがあります。

ここに画像の説明を入力

したがって、基本的にオブジェクトの長さはわかりません。次のコードを使用して結果をレンダリングしています。

<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プロパティを持つオブジェクトにしたい。

上記のオブジェクトで期待される結果:

ここに画像の説明を入力

現在の結果:

ここに画像の説明を入力

オブジェクトに 3 番目の要素を追加すると、次のようになります。

ここに画像の説明を入力

フィドル: http://jsfiddle.net/UuzZT/

4

2 に答える 2

1

HTML に単純なセマンティック エラーがあります。具体的には、ng-repeat-start要素が をラップしていない<td>ため、が<td>あっても が毎回表示されますng-if。ここで修正:

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

ただし、オブジェクトを反復しようとしているという事実に起因する他の問題があります。オブジェクトには順序プロパティがありません。

于 2014-02-07T03:37:24.157 に答える