/ / Directiva aislada AngularJS con alcance de transclusión de ng-repeat breaks - angularjs, directiva angularjs, angularjs-scope, ng-repeat, transclusión

Directiva aislada AngularJS con alcance de transclusión de rupturas ng-repeat - angularjs, directiva angularjs, angularjs-scope, ng-repeat, transclusión

Realmente apreciaría comprender este problema de alcance que encontré al desarrollar una directiva aislada transcluida, una en la que la transclusión se repite dentro de la plantilla.

Prometo que ya entiendo cómo funcionan tanto los ámbitos aislados como los de transclusión, y ya he buscado en la web una respuesta. :)

Lo que estoy encontrando aquí es que, cuando no uso una repetición, mi html transcluido puede acceder al ámbito principal (como esperaba, ya que el ámbito transcluido es un hermano del ámbito primario).

Sin embargo, en el momento en que cambio mi plantilla para repetir la transclusión, el ámbito primario ya no es accesible para el html transcluido.

Estoy seguro de que hay una buena razón para esto, pero por mi vida no puedo señalarlo.

Por favor vea un ejemplo plunker aquí - Explicará a qué me refiero mejor que las palabras.

Respuestas

8 para la respuesta № 1

Lo que sucede con ng-repeat es que el alcance transcluido (00A a continuación) se convierte en un elemento secundario del alcance ng-repeat (009), en lugar de ser un elemento secundario del alcance del controlador (003).

(Haga clic derecho en la imagen y ábrala en una nueva pestaña para verla mejor).

enter image description here

Como no hay una línea discontinua desde el alcance de aislamiento 006 al alcance del controlador 003, el alcance transluido 00A no puede encontrar outer utilizando prototipación de encadenamiento / búsqueda de herencia.

(Los ámbitos 004 y 005 son creados por la working directiva. Alcance transcluido 005 puede encontrar outer utilizando herencia prototípica.)