2014-12-10 22 views
-1

Я пытаюсь использовать ng-repeat для отображения массива.Как определить индекс массива в моем случае?

У меня есть что-то вроде

<div ng-repeat="stu in school"> 
    <div>{{stu.name}}</div> 
    <div>{{stu.grade}}</div> 
</div> 

JS

$scope.school = [ 
    {name:'test' 
    grade:'a'}, 
    {name:'test2'. 
    grade:'b'}, 
    {name:'test3', 
    grade:'c'} 
] 

Есть в любом случае я могу обнаружить студентов по индексу? Я был предоставлен только name и grade, и я хочу их отличить. Например, я хочу добавить класс 'first' на test и grade a ученик и класс 'second' на test2 и grade b студент.

Спасибо за помощь!

+0

В этом случае, зачем вам это нужно, чтобы идентифицировать индекс? Вы можете просто использовать класс '' data-ng-class = "{first: stu.grade === 'a'}" '' –

+0

: a является просто примером. В этом случае у меня могут быть два ученика с одинаковым классом – FlyingCat

+0

, вы можете добавить столько условий, сколько хотите добавить. '' data-ng-class = "{'first': (stu.grade == 'a' && condition2 && ...)}' ' –

ответ

0

вы можете использовать ng-class с условием, например, если и нужно добавить class first для студента Whos имя test & & класса a, и можно использовать

ng-class="{ 'first': (stu.name=='test' && stu.grade=='a')} 

вот Plunker Demo для примера

Обратите внимание, что ваш массив должен быть как

$scope.school = [ 
    {name:'test', grade:'a'}, 
    {name:'test2',grade:'b'}, 
    {name:'test3', grade:'c'} 
] 
1

Да, это возможно. Вы можете получить доступ к индексу элемента, и вы также можете сгенерировать класс на основе определенных комбинаций свойств доступных элементов.

<ul> 
    <li ng-repeat="result in testScores"> 
      <span class="{{$index}} {{result.name}}-{{result.grade}}">{{result.name}} : {{result.name}}</span> 
    </li> 
</ul> 

Вот рабочий JSFiddle - http://jsfiddle.net/mattezell/douku110/3/

На соответствующую записку, Тиль: как получить демо AngularJS JSFiddle работает ...