Google은 애플리케이션을 각도 1.3.0으로 업그레이드하는 중입니다. 그렇게하면서 우리는 몇 가지 문제에 부딪혔습니다. 그 중 대부분은 ngRepeat 내부에서의 ngTransclude의 동작으로 나타납니다.AngularJS : ngRepeat의 전송 범위 및 액세스 범위
우리는 많은 수의 항목과 주위의 컨테이너를 반복하지만 그 컨테이너의 자식은 소유하지 않는 지시문이 있습니다.
<div ng-controller="myController">
There are {{items.length}} items.
<div my-directive items="items">
This item's name is {{item.name}}
</div>
</div>
내부적으로 지침은 무엇보다도 <li ng-repeat="item in items" ng-transclude></li>
이 포함되어 있습니다 예를 들어, 여기에 간단한 예이다.
업데이트 전에는 정상적으로 작동했습니다. 반복되고 중첩 된 요소는 ngRepeat에 의해 생성 된 범위를 상속하는 범위에 있습니다. 업데이트 시점에서 항목은 컨트롤러에서 상속 한 범위에 있으며, 알 수있는 한 ngRepeat로 만든 범위에 액세스 할 수있는 방법은 없습니다.
- 올드 (1.3.0-beta.1) 행동 : http://jsbin.com/kalutu/1/edit
- 뉴 (1.3.0) 행동 : 여기
두 JS 빈의 예 http://jsbin.com/gufunu/1/edit
어떻게 Angular 1.3.0에서 이전 동작 또는 일부 유사점을 얻을 수 있습니까? 이것이 ngTransclude의 의도 된 동작이라면, 자식 노드가 무엇인지 모른 채 그들을 반복 할 수 있습니까?
웰프, 그 냄새. 감사! – Chris