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, время: 23:34. |