AngularJs isolated scope directive
у меня 2 директивы :
directive-1 -> добовляет обработку click и показывает popup. закрыто в isolated scope, т.к. может быть добавлена к разным элементам и не хочу засарять их scope(и хочу исключить вмешательство в него, только если через properties) directive-2 -> теряет scope контроллера из за isolated scope в directive-1. <body ng-controller="mainController"> <directive-1 popup="pop-1"> <directive-2 callbackfunc="func-1"> </directive-2> </directive-1> </body> или <body ng-controller="mainController"> <div directive-1> <directive-2 callbackfunc="func-1"> </directive-2> </div> </body> как я могу закрыть directive-1 в isolated scope но не влиять на scope directive-2? |
Никак. Это идеологически невозможно вложенная директива всегда имеет доступ к scope внешний изолированной директивы но не глубже.
Все что ты можеш это получить доступ к scope контрола какимнибудь полухакерским способом Например как нибудь так controllerScope=angular.element("#scope").scope(); Либо при помощи $scope.$parent но это не тоже самое что размещение директивы 2 в scope контролера |
Цитата:
Цитата:
|
Цитата:
У меня таких вопросов не возникает ))) А так согласен, просто криво спроектировано. Тот же контролер попросту можно внутрь directive 1 засунуть |
в этом случае :
<body ng-controller="mainController"> <div directive-1> <directive-2 callbackfunc="func-1"> </directive-2> </div> </body> directive-1 - это только property к div(например как то реагировать на некое событие). как я могу по другому декларативно назначать функциональность элементам? я могу использовать $parent но это заставляет меня каждый раз после добавления property/directive вносить изменения : <div directive-1> <directive-2 callbackfunc="[COLOR="Red"]$parent.[/COLOR]func-1"> </directive-2> </div> |
Часовой пояс GMT +3, время: 08:15. |