Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
link_func = function(scope, element, attrs, ctrls) {
console.log(ctrls); //[parentCtrl, childrenCtrl]. Тем не менее контроллер из children будет доступен в дочерней директиве
}
app.directive('baby', function() {
return {
restrict: 'E',
link: link_func
}
})
app.directive('baby2', function() {
return {
restrict: 'E',
link: link_func
}
})
tooltip и popover используют объект генерируемый одной и той же функцией $tooltip().directive( 'tooltip', [ '$tooltip', function ( $tooltip ) {
return $tooltip( 'tooltip', 'tooltip', 'mouseenter' );
}])
.directive( 'popover', [ '$tooltip', function ( $tooltip ) {
return $tooltip( 'popover', 'popover', 'click' );
}]);
Вполне возможно, что потом захотите использовать в директиве методы чужого контроллера, который затрет ссылку на ваш контроллер.
app.directive('children', function() {
return {
controller: 'childrenCtrl',
require: ['^parent', 'children'],
link: function(scope, element, attrs, ctrls) {
var parentCtrl = ctrls[0];
var childrenCtrl = ctrls[1];
// ...
}
}
})
Контроллеры директив в AngularJS