2015-10-13 48 views
0

我有以下AngularJS片段:需要从纳克控制器父控制器 - 由指令所要求的控制器无法找到

<div ng-controller="FooController as fooCtrl"> 
    <bar-directive></bar-directive> 
</div> 

而对于bar-directive指令看起来类似:

angular.module("Foo").directive('barDirective', function() { 
    return { 
     restrict: 'E', 
     require: ['^FooController'], 
     link: function (scope, element, attrs, controllers) { 
      console.log(controllers); 
     } 
    }; 
}); 

然后我得到一个错误,指出“指令'barDirective'所需的”Controller'FooController'无法找到“。控制器不能被这种方式继承吗?我是否需要创建自己的包装指令?

+0

在你的'NG-controller'你说'FooController的作为fooCtrl'。所以在你的指令中你应该要求'fooCtrl'而不是'FooController'。 – Pepijn

+0

我得到了同样的错误,即使这种情况不是非常容易重用 - 是否有一个原因,它不检查连接到父元素的正确“类型”的控制器,而不是按名称? –

回答

1

要求来要求另一指令,并注入其控制器作为第四个参数逻辑函数,需要导入ngController指令

require: ['^ngController'], 
相关问题