Angular需要来自RouteProvider的Controller

时间:2015-11-17 14:57:00

标签: angularjs

具有以下结构:

// 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}}函数

1 个答案:

答案 0 :(得分:1)

也许this answer可以引导您找到解决方案。

  

符号require: "^myController"表示您的指令会尝试   访问另一个名为myController的指令并在某些指令上定义   作为my-controller属性或<my-controller>的祖先标记   标签。在你的情况下,你没有这样的指令,因此例外。

     

如果真的想要在你的指令中要求外部控制器   可以要求ngController