personalizadas ngclass directivas javascript angularjs

javascript - ngclass - ¿Cómo asignar clases alternativas a filas en Angular JS?



ng-class angularjs (4)

Quiero asignar clases alternativas a filas en una tabla. Estoy usando ng-repeat en

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

Quiero obtener un resultado como este:

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

Lo he intentado (no funciona):

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

No puedo conseguir que funcione. También parece que Angular está usando el atributo ''clase''. ¿Por qué está haciendo eso? ¿Puedo decirle a AngularJS que no use el atributo de clase para las evaluaciones internas?

Por favor ayuda. ¡Gracias!


Como @ganaraj establece ng-class-odd y ng-class-even son la forma correcta de hacerlo, pero para beneficio de los buscadores, su propuesta inicial no estaba muy lejos de funcionar en Angular> = 1.2.19.

Aquí hay un ejemplo estrechamente relacionado de algo que habría funcionado y que también funcionaría si colorea más que filas alternas (por ejemplo, cada 3 filas):

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


De los documentos angulares ..

Use ng-class-odd ng-class-even

<li ng-repeat="name in names"> <span ng-class-odd="''odd''" ng-class-even="''even''"> {{name}} </span> </li>



También puede usar las directivas ng-class-odd y ng-class-even directamente dentro de la directiva ng-repeat .

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

Lo que nos da agradables clases alternativas para cada fila:

Este ejemplo se toma de la siguiente página, que también muestra cómo convertir datos JSON en una página amigable y receptiva de Master-View:

Vistas maestras con AngularJS