[英]Get parent directive controller in child directive
我有以下指令:
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;
....
....
}
};
}]);
在鏈接函數中,我獲得了$ controller依賴關系,該依賴關系包含對parentDirective控制器的引用。 如何在childDirective的控制器中獲取該引用?
您有兩種選擇,可以將其放在示波器上,也可以將其存儲在控制器也可以訪問的變量中:
angular.module('test').directive('childDirective', [function() {
var parentCtrl;
return {
restrict: 'E',
require: '^parentDirective',
controller: function() {
// parentCtrl will be defined after the link function runs.
},
link: function($scope, $element, $attrs, $controller) {
var data = $controller.parentDirectiveData;
parentCtrl = $controller
}
};
}]);
重要的是請注意,控制器功能將在鏈接功能之前運行,因此您只能在異步回調中真正使用它。
在此之前,無法將父級控制器的實例注入子級控制器,因為它依賴於綁定到范圍的指令才能定義該層次結構。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.