AngularJS
반복
수색…
소개
ngRepeat
지시문은 컬렉션의 항목 당 한 번 템플릿을 인스턴스화합니다. 컬렉션은 배열 또는 객체 여야합니다. 각 템플릿 인스턴스는 자체 루프 변수를 가져 와서 루프 변수를 현재 컬렉션 항목으로 설정하고 $index
를 항목 인덱스 또는 키로 설정합니다.
통사론
-
<element ng-repeat="expression"></element>
-
<div ng-repeat="(key, value) in myObj">...</div>
-
<div ng-repeat="variable in expression">...</div>
매개 변수
변하기 쉬운 | 세부 |
---|---|
$index | 반복 요소의 오프셋 번호 반복기 (0 .. 1) |
$first | boolean 반복 한 요소가 반복자 내에서 최초의 경우는 true입니다. |
$middle | boolean 반복 된 요소가 반복기의 처음과 마지막 사이에 있으면 true입니다. |
$last | boolean 반복 한 요소가 반복자 내에있는 경우는 true입니다. |
$even | boolean iterator position $index 가 짝수이면 true이고 그렇지 않으면 false입니다. |
$odd | boolean iterator position $index 가 홀수 인 경우 true, 그렇지 않으면 false입니다. |
비고
AngularJS는 이러한 매개 변수를 ng-repeat 표현식과 ng-repeat가있는 HTML 태그 내부에서 사용할 수있는 특수 변수로 제공합니다.
객체 속성 반복하기
<div ng-repeat="(key, value) in myObj"> ... </div>
예를 들어
<div ng-repeat="n in [42, 42, 43, 43]">
{{n}}
</div>
추적 및 중복
ngRepeat
는 $ watchCollection 을 사용하여 컬렉션의 변경 사항을 감지합니다. 변경이 이루어 ngRepeat
는 해당 변경 사항을 DOM에 적용합니다.
- 항목이 추가되면 템플리트의 새 인스턴스가 DOM에 추가됩니다.
- 항목이 제거되면 템플리트 인스턴스가 DOM에서 제거됩니다.
- 항목이 재정렬되면 해당 템플릿이 DOM에서 재정렬됩니다.
중복
- 중복 값을 포함 할 수있는 목록을
track by
. -
track by
도 목록이 크게 변화 속도가 빨라집니다. - 이 경우에
track by
를 사용하지 않으면 오류가 발생합니다 :[ngRepeat:dupes]
$scope.numbers = ['1','1','2','3','4'];
<ul>
<li ng-repeat="n in numbers track by $index">
{{n}}
</li>
</ul>
ng-repeat-start + ng-repeat-end
AngularJS 1.2 ng-repeat
는 ng-repeat-start
및 ng-repeat-end
여러 요소를 처리합니다.
// table items
$scope.tableItems = [
{
row1: 'Item 1: Row 1',
row2: 'Item 1: Row 2'
},
{
row1: 'Item 2: Row 1',
row2: 'Item 2: Row 2'
}
];
// template
<table>
<th>
<td>Items</td>
</th>
<tr ng-repeat-start="item in tableItems">
<td ng-bind="item.row1"></td>
</tr>
<tr ng-repeat-end>
<td ng-bind="item.row2"></td>
</tr>
</table>
산출:
항목 |
---|
항목 1 : 행 1 |
항목 1 : 행 2 |
항목 2 : 행 1 |
항목 2 : 행 2 |
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow