5

Wir sind dabei, unsere Anwendung auf Angular 1.3.0 zu aktualisieren. Dabei sind wir auf einige Probleme gestoßen, von denen die meisten auf das Verhalten von ngTransclude in ngRepeat zurückzuführen sind.AngularJS: ngTransclude und Zugriff auf den Umfang von ngRepeat

Wir haben eine Anweisung, die eine Reihe von Elementen mit einem Container um sie herum wiederholt, aber nicht die untergeordneten Objekte des Containers besitzt. Zum Beispiel, hier ist ein vereinfachtes Beispiel:

<div ng-controller="myController"> 
    There are {{items.length}} items. 
    <div my-directive items="items"> 
     This item's name is {{item.name}} 
    </div> 
</div> 

Intern enthält die Richtlinie <li ng-repeat="item in items" ng-transclude></li>, unter anderem.

Vor dem Update funktionierte das einwandfrei. Die wiederholten, übersetzten Elemente befinden sich in einem Bereich, der von dem von ngRepeat erstellten Bereich erbt. Seit dem Update befinden sich die Elemente in einem Bereich, der vom Controller erbt, und soweit ich das beurteilen kann, gibt es keine Möglichkeit, auf den von ngRepeat erstellten Bereich zuzugreifen.

Hier sind zwei JS Bin Beispiele:

Wie kann Ich erreiche das alte Verhalten, oder einen Anschein davon, in Angular 1.3.0? Wenn dies das beabsichtigte Verhalten von ngTransclude ist, wie kann ich eine Reihe von Kindknoten wiederholen, ohne zu wissen, was sie sind?

Antwort