Nie jestem pewien, czy jest to rzeczywiście możliwe, ale zasadniczo chcę odwrócić zakres izolatu "&" w AngularJS. Oto Plunkr do wykazania.Zakres izolatu dyrektywy dostępu z wewnątrz zawartości zawartej w translatach
Zasadniczo mam skonfigurowaną dyrektywę niestandardową, która dostarcza trochę kodu HTML wielokrotnego użytku. Korzysta z ng-transclude
, aby umożliwić renderowanie zawartości zewnętrznej. Jednak znalazłem sytuację, w której chciałbym uzyskać dostęp do funkcji, która została ustawiona w zakresie izolatu dla dyrektywy, z wewnątrz translatowanej sekcji kodu.
Więc zasadniczo mam coś, co wygląda jak:
<div ng-controller="MainController">
<!-- The directive -->
<div some-custom-directive>
<!-- Button 1 that invokes a method within the controller scope -->
<button id="button1" ng-click="invoke1()">Invoke from Controller</button>
<!-- Button 2 that invokes a method on the isolate scope for the custom directive -->
<button id="button2" ng-click="invoke2()">Invoke from Isolate Scope</button>
</div>
</div>
Czy ktoś wie, czy jest to rzeczywiście możliwe?
Aktualizacja
Jak na odpowiedź @Mark Rajcok, tym $$prevSibling
znaleźć na $scope
mogą być wykorzystywane w celu uzyskania dostępu izolatu zakresu dyrektywy od wewnątrz dołączany treści. Jednak zaktualizowałem powyższy Plunkr, aby spróbować tego z dyrektywy ng-repeat
, która nie działa. Zakładam, że przedmioty z tego powtórzenia nie dziedziczą zakresu.
Pozdrawiam, to zadziałało. Jednakże odkryłem, że to nie działa z 'ng-repeat' (zakładam, ponieważ każdy element nie dziedziczy' $ scope' od kontrolera.Czy jest tak, że każdy element może uzyskać dostęp do '$$ prevSibling '? Zaktualizowałem powyższy Plunkr, aby podać przykład: –
@SamuelSlade, zobacz moją zaktualizowaną odpowiedź (z obrazkiem) –
Genialny, działa jak czar! Dziękuję za diagram, bardzo pouczający –