Вы должны использовать require
, когда ваши директивы , связанные: гармошка и аккордеон пунктов.
Для связи между областями вы должны попробовать $ on, $ emit, $ broadcast. В вашем случае, вам нужно вводить rootScope в вашу директиву, и транслировать событие из rootScope:
.directive('searchResultHeader',
function($rootScope) { //inject rootScope
return {
replace: true,
template: '<button>clickme</button>',
link: function($scope, $elem, $attrs) {
$elem.on('click', function() {
$rootScope.$broadcast("someEvent"); //broadcast an event to all child scopes.
});
}
};
}
);
Есть областей заинтересованы в том случае, могут подписаться на него с помощью $ на:
function($scope) {
$scope.$on("someEvent", function() {
alert('this is working');
});
}
Использование событий - способ создания развязанных систем.
DEMO
Требуется только контроллер, если у них есть отношения родитель-потомок. См. Обновленный plunk http://plnkr.co/edit/iLfc3a?p=preview –
@KhanhTO: Спасибо за это. Итак, если мне нужна связь между двумя директивами для сиблинга, как я могу это сделать? – jintoppy