1

したがって、かなり複雑な角度テーブルがあり、繰り返し部分はすべてうまくいきますが、変数をng-class-evenandで設定するとng-class-odd、変数が持続しないようです。の範囲を誤解しているのかもしれませんが、ng-repeat困惑しています。

私の繰り返しは次のようになります。

<tr ng-repeat-start="item in data.group" ng-class-even="color='red'" ng-class-odd="color='blue'">
    <td>{{item.name}}</td>            
    <tr ng-repeat-end ng-repeat="inner in item.innerdata" ng-class="color">
        <td>{{inner.innername}}</td>
    </tr>
</tr>

したがって、行がループしている間に色が設定されることを期待しています。これはサンプルセットアップのフィドルです。

4

1 に答える 1

3

ng-class-even&ng-class-oddは現在のng-repeat$index オブジェクトを見て、どの値を class 属性に与えるべきかを決定します。

ng-class-even/ng-class-odd

式を取り、評価の結果は、スペースで区切られたクラス名または配列を表す文字列にすることができます。

以下のHTMLのようにマークアップを変更

マークアップ

<table>
    <tr ng-repeat-start="item in data.group" ng-init="$index%2==0?(color='blue'): (color='red')">
        <td>{{item.name}}</td>            
        <tr ng-repeat-end ng-repeat="inner in item.innerdata" ng-class="color">
            <td>{{inner.innername}}</td>
        </tr>
    </tr>
</table>

フィドル

更新 1

ng-classより良い解決策は、内部の ng-repeatに直接使用することです

<table>
    <tr ng-repeat-start="item in data.group">
        <td>{{item.name}}</td>            
        <tr ng-repeat-end ng-repeat="inner in item.innerdata" ng-class="$parent.$index%2 == 0? 'red': 'blue'">
            <td>{{inner.innername}}</td>
        </tr>
    </tr>
</table>

更新 1

更新 2

より正確な解決策は、の使用$evenまたは$oddオブジェクトです$parent

<table>
    <tr ng-repeat-start="item in data.group">
        <td>{{item.name}}</td>            
        <tr ng-repeat-end ng-repeat="inner in item.innerdata" ng-class="$parent.$even? 'red': 'blue'">
            <td>{{inner.innername}}</td>
        </tr>
    </tr>
</table>

更新 2

于 2015-03-30T19:54:18.220 に答える