5

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로 만든 범위에 액세스 할 수있는 방법은 없습니다.

어떻게 Angular 1.3.0에서 이전 동작 또는 일부 유사점을 얻을 수 있습니까? 이것이 ngTransclude의 의도 된 동작이라면, 자식 노드가 무엇인지 모른 채 그들을 반복 할 수 있습니까?

답변