Jesteśmy w trakcie aktualizacji naszej aplikacji do Angular 1.3.0. W ten sposób natrafiliśmy na kilka kwestii, z których większość zdaje się sprowadzać do zachowania ngTransclude wewnątrz ngRepeat.AngularJS: ngTransclude i zakres dostępu ngRepeat
Mamy dyrektywę, która powtarza kilka elementów, z pojemnikiem wokół nich, ale nie jest właścicielem dzieci tego pojemnika. Na przykład, tutaj jest uproszczony przykład:
<div ng-controller="myController">
There are {{items.length}} items.
<div my-directive items="items">
This item's name is {{item.name}}
</div>
</div>
Wewnętrznie dyrektywa zawiera <li ng-repeat="item in items" ng-transclude></li>
, między innymi.
Przed aktualizacją działało dobrze. Powtarzające się elementy translatowane znajdują się w zakresie, który dziedziczy po zakresie utworzonym przez ngRepeat. Od momentu aktualizacji elementy są w zakresie dziedziczącym po kontrolerze i, o ile wiem, nie ma możliwości uzyskania dostępu do zakresu utworzonego przez ngRepeat.
Oto dwa przykłady JS BIN:
- Stare (1.3.0-beta.1) Zachowanie: http://jsbin.com/kalutu/1/edit
- Nowy (1.3.0) zachowanie: http://jsbin.com/gufunu/1/edit
Jak można Osiągnąłem stare zachowanie lub jego pozór w Angular 1.3.0? Jeśli jest to zamierzone zachowanie ngTransclude, w jaki sposób mogę powtórzyć kilka węzłów potomnych, nie wiedząc, co to jest?
Welp, to śmierdzi. Dzięki! – Chris