具有以下结构:
// routes:
...
angular.module("MyModule")
.config(function($routeProvider){
$routeProvider
.when("/index",
{
"templateUrl": "parent-template.html",
"controller": "ParentController",
"controllerAs": "parentController"
})
// directives
.directive("myDirective",function(){
return {
"restrict": "E",
"templateUrl": "directive-template.html",
"controller": "DirectiveController",
"controllerAs": "ctrl",
"require": "^parentController"
};
})
我收到以下错误:
无法找到指令'myDirective'所需的控制器'ParentController'!
控制器当然定义如下:
angular.module( “MyModule的”) .controller(“ParentController”,function(){...});
parent-template.html
也可以。
我想将parentController
传递给link
的{{1}}函数
答案 0 :(得分:1)
也许this answer可以引导您找到解决方案。
符号
require: "^myController"
表示您的指令会尝试 访问另一个名为myController
的指令并在某些指令上定义 作为my-controller
属性或<my-controller>
的祖先标记 标签。在你的情况下,你没有这样的指令,因此例外。如果真的想要在你的指令中要求外部控制器 可以要求
ngController