71

テーブルの行に代替クラスを割り当てたい。ng-repeatを使用しています

<tr ng-repeat="event in events">

次のような出力を取得したい:

<tr class="odd">...</tr>
<tr class="event">....</tr>

私はこれを試しました(動作しません):

<tr ng-repeat="event in events" class="$index % 2 == 0? 'event' : 'odd'">

動作させることができません。また、Angularはに'class'属性を使用しているようです。なぜそうしているのですか?内部評価にクラス属性を使用しないようにAngularJSに指示できますか?

助けてください。ありがとう!

4

5 に答える 5

93

これには、角度ディレクティブngClassEvenおよびngClassOddを使用する必要があります。

それらの使用方法については、ドキュメントのセクションをご覧ください

http://docs.angularjs.org/api/ng.directive:ngClassEven

http://docs.angularjs.org/api/ng.directive:ngClassOdd

お役に立てれば。

于 2012-08-29T14:01:18.433 に答える
21

Angular ドキュメントから..

ng-class-odd ng-class-evenを使用する

<li ng-repeat="name in names">
  <span ng-class-odd="'odd'" ng-class-even="'even'">
    {{name}}
  </span>
</li>
于 2014-10-01T09:48:05.507 に答える
10

@ganaraj が ng-class-odd と ng-class-even がこれを行う正しい方法であると述べているように、検索者の利益のために、最初の提案は Angular >=1.2.19 で動作することから遠く離れていませんでした。

以下は、1 行おきに複数の行 (たとえば 3 行ごと) に色を付ける場合に機能し、機能するものの密接に関連した例です。

<div>
<style>
    .color0 {
        background-color: lightblue;
    }

    .color1 {
        background-color: lightyellow;
    }

    .color2 {
        background-color: lightgray;
    }
</style>


<div ng-repeat="result in results" ng-class="'color' + ($index % 3)">
    <div>
        <p>{{result.myText}}</p>
    </div>
</div>

于 2014-11-04T15:24:12.403 に答える
6

ng-class-oddおよびng-class-evenディレクティブをディレクティブ内で直接使用することもできますng-repeat

<div class="cssOneProductRecord" 
   ng-repeat='..' 
   ng-class-odd="'cssProductOdd'" 
   ng-class-even="'cssProductEven'" >

これにより、行ごとに素敵な交互のクラスが得られます。

ここに画像の説明を入力

この例は、次のページから取得したもので、JSON データを使いやすく応答性の高いマスター ビュー ページに変換する方法も示しています。

AngularJS を使用したマスター ビュー

ここに画像の説明を入力

于 2014-10-30T08:34:51.427 に答える