수색…


소개

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-repeatng-repeat-startng-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