Я имею следующую директиву:Получить родительский контроллер директивы в директиве ребенка
angular.module('test').directive('childDirective', [function() {
return {
restrict: 'E',
require: '^parentDirective',
controller: function() {
// How do I get parentDirective's controller?
},
link: function($scope, $element, $attrs, $controller) {
var data = $controller.parentDirectiveData;
....
....
}
};
}]);
В функции связи я получаю $ зависимости контроллера, который содержит ссылку на контроллер parentDirective в. Как получить эту ссылку в контроллере childDirective?
Я ищу «официальный» ответ, но это похоже на обходное решение. – Naor
Обратите внимание на последний абзац. Контроллер, как и любой другой контроллер, вы вводите в него ссылки на вещи, используя инъекцию зависимости углов. Как инжектор узнает, какой экземпляр контроллера родительской директивы вводится (помните, что есть один экземпляр директивы), если вы еще не связали дочернюю директиву с областью действия (происходит в функции связывания и ** определяет ** родителя директивы). Другими словами, официальным ответом является «делать директиву для директивных сообщений в функции связывания». –
Понял. Дело в том, что я работаю с синтаксисом controllerAs, и нет linkAs ... – Naor