Angularjs 角度指令require-找不到控制器

Angularjs 角度指令require-找不到控制器,angularjs,Angularjs,我试图让一个指令需要一个单独定义的控制器(例如,在指令之外)。我看到的所有示例都是使用控制器函数/选项链接的指令 我想做的是按照常规规范定义一个控制器,然后有一个指令嵌套在控制器标记需要它并获得对它的访问权的指令中 像这样: app.controller('MyController', function() { $scope.awesomeProperty = 11; }); app.directive('someDirective', function() { return {

我试图让一个指令需要一个单独定义的控制器(例如,在指令之外)。我看到的所有示例都是使用控制器函数/选项链接的指令

我想做的是按照常规规范定义一个控制器,然后有一个指令嵌套在控制器标记需要它并获得对它的访问权的指令中

像这样:

app.controller('MyController', function() {
    $scope.awesomeProperty = 11;
});


app.directive('someDirective', function() {
  return {
    scope: {},
    require: '^MyController',
    link: function($scope, el, attrs, ctrl) {
        console.log(ctrl.awesomeProperty); //11
    }
  }
});
但是,这会引发ctreq错误-它找不到控制器。注意,我使用“^”表示祖先,因为在所有情况下,外部包含元素都将包含控制器

我只是误解了吗?我对拼写进行了双重和三重检查,等等。在这种情况下,“控制器”是否与仅通过指令定义的实际“角度控制器”不同


感谢您的帮助。

这不是
require
的工作原理;用于包含其他指令(并注入其控制器)。看起来您只是想设置指令的
controller
属性,例如
controller:'MyController'
那么,如何使用它来表示“我希望链接函数的“ctrl”被分配给“MyController”的实例“?啊。这太简单了,我应该试一下。我要正式声明angular的文档在这方面非常混乱。它们在引用指令时一直使用“controller”一词。这让我很困惑,这是有道理的。doco可能是最冗长(和最令人困惑)的,但值得仔细阅读,
require
不是这样工作的;用于包含其他指令(并注入其控制器)。看起来您只是想设置指令的
controller
属性,例如
controller:'MyController'
那么,如何使用它来表示“我希望链接函数的“ctrl”被分配给“MyController”的实例“?啊。这太简单了,我应该试一下。我要正式声明angular的文档在这方面非常混乱。它们在引用指令时一直使用“controller”一词。这让我很困惑,这是有道理的。doco可能是最冗长(也是最令人困惑)的,但它值得彻底阅读