Я думаю, что директива я использую в моей директивы получить связаны в первую очередь?
Да. Функция ссылки дочерней директивы будет выполняться до функции ссылки родителя.
Вот fiddle, который показывает две вложенные директивы,
<div d1>
<div d2></div>
</div>
и регистрирует при вызове контроллера и связать функции в этих директивах.
Есть несколько проблем, с вашей Plunker:
Поскольку вы используете @
для ваших изолят областей, вам нужно использовать {{}} s в ваших значений атрибутов:
<visible value='{{visible}}'>plop</visible>
<invisible value='{{visible}}'>plop</invisible>
Поскольку $scope.visible
определен в вашем контроллере, я предполагаю, что вы хотели использовать это значение, а не test
.
В директиве invisible
вам необходимо использовать свойство области изоляции value
в вашей функции связи. Свойство visible
доступно для транскодируемой области (что влияет, если вы используете template
в своей директиве, например @Langdon), но не в области выделения, что и видит функция ссылки.
var template = "<span ng-show='value'>{{value}}</span>";
Plunker.
Привет @Mark вы знаете, как я могу заставить ng-show быть связанным после моей директивы? Могу ли я вызвать его функцию связи вручную после вызова компиляции $? – Renaud
@Reno, я не знаю, как вы могли бы назвать функцию ссылки. Однако, см. Мой обновленный ответ, касающийся того, чтобы ваш Plunker работал. –