2014-12-21 2 views
0

Я перебираю массив событий и показываю его спереди. В div есть директива «score», и я хочу ввести число элементов массива в код директивы, используя $index. Работает нормально, пока я не попытался добавить orderBy в ng-repeat. А теперь $index работает на основе упорядоченного списка. Любое предложение, как ввести число текущего элемента массива?

данные:

"events" : [{ 
"event_score" : [0,1] 
}, 
{ 
"event_score" : [0,1] 
}, 
... 
] 

Это мой код:

<div ng-repeat="e in events | orderBy:'match_time'"> 
    <score index="{{$index}}" user="{{screen_name}}"></score> 
</div> 
+0

Непонятно, что вы хотите сделать. – Bazinga

+0

Мне нужно получить число токов элемента «e» в массиве «события». В том же порядке, как это происходит в массиве – n00b43677

+3

Я полагаю, [этот ответ] (http://stackoverflow.com/a/22978169/1229023) должен быть полезен. – raina77ow

ответ

0

Вы судимый правопреемник events к $scope переменным?

$scope.events = [{ 
    "event_score" : [0,1] 
    }, 
    { 
    "event_score" : [0,1] 
    }, 
    ... 
    ]; 

<div ng-repeat="e in events"> 
    Current item is {{$index}} 
    <score index="{{$index}}" user="{{screen_name}}"></score> 
</div> 

который довольно хорошо, как angularjs работы: P

Тогда

orderBy:'match_time' не будет работать потому что у вас нет ключа под названием match_time в массиве (как я могу видеть), так он будет работать, если у вас есть что-то вроде

$scope.events = [{ 
     "event_score" : [0,1], 
     "match_time": 5600 
     }, 
     { 
     "event_score" : [0,1], 
     "match_time":4500 
     } 
     ]; 
Смежные вопросы