2014-07-15 5 views
0

문서 : AngularJS에서 ng-repeat를 숫자 인덱스와 함께 사용하여 객체를 반복 할 수 있습니까?

https://docs.angularjs.org/api/ng/directive/ngRepeat

내가 객체를 반복하고 경우 $ 지수는 열쇠가 될 것이라고 말했다. 대신 순차 숫자 인덱스 (0,1,2 ...)를 검색하려면 어떻게합니까? (여전히 배열이 아닌 객체를 사용한다고 가정 할 때)

+0

인덱스는 순차적 숫자입니다. 물어 보는 것, 객체를 반복하는 법? 개체에 숫자 인덱스가 있습니까? –

+0

아니요 배열을 사용하면 변수가 제대로 바인딩되지 않으므로 객체를 사용하도록 '강제로'했습니다. 그래서 AngularJS 구문을 사용하는 배열처럼 루프를 돌릴 수있는 방법이 있는지 궁금합니다. – Hoa

답변

1

이제 테이블에서 개체에 사람들을 표시 할 개체가

$scope.object = {}; 
$scope.object.person1 = {name: "tom", age:"5"}; 
$scope.object.person2 = {name: "jerry", age: "5"}; 
$scope.object.person3 = {name: "sparky", age: "3"}; 

입니다 고려. ng-repeat를 사용 :

<table> 
    <thead> 
     <th>Id</th> 
     <th>Name</th> 
     <th>Age</th> 
    </thead> 

    <tbody> 
     <tr ng-repeat="person in object"> 
      <td>{{$index+1}}</td> 
      <td>{{person.name}}</td> 
      <td>{{person.age}}</td> 
     </tr> 
    </tbody> 
</table> 

당신의 결과는

Id Name Age 
1 tom 5 
2 jerry 5 
3 sparky 3 

때때로 당신이 중복 오류 [속는 ngRepeat]으로 실행할 수있을 것이다. 배열에 항목이 중복되면 오류가 발생합니다. 예를 들어,

$scope.store = ["apple", "milk", "carrots", "apple"]; 
<li ng-repeat="item in store">{{item}}</li> 

사과가 두 번 발생하므로 중복됩니다. https://docs.angularjs.org/error/ngRepeat/dupes

오류를 피하기 위해 ng-repeat는 $ 인덱스를 사용하여 배열의 요소를 항상 고유 한 숫자 인덱스로 추적하도록 지시합니다.

<li ng-repeat="item in store track by $index">{{item}}</li> 
관련 문제