Я не уверен, действительно ли это возможно, но я по сути нуждаюсь в обратном "&". изолировать область действия в AngularJS. Ниже представлен Plunkr.
В принципе, у меня есть настраиваемая директива, которая предоставляет некоторый HTML-код многократного использования. Он использует ng-transclude
, чтобы разрешить отображение некоторого внешнего содержимого внутри него. Тем не менее, я нашел ситуацию, когда мне хотелось бы получить доступ к функции, которая была настроена в области выделения для директивы, изнутри выделенной секции кода.
Итак, у меня есть что-то похожее:
<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>
Кто-нибудь знает, действительно ли это возможно?
Обновление
В соответствии с ответом @Mark Rajcok, $$prevSibling
, найденный на $scope
, может использоваться для доступа к области выделения из директивы из внутриконтинентального содержимого. Тем не менее, я обновил вышеуказанный Plunkr, чтобы попытаться сделать это из директивы ng-repeat
, которая не работает. Я предполагаю, что элементы внутри этого повтора не наследуют область действия.