我正在尝试让指令需要一个单独定义的控制器(例如在指令之外)。我见过的所有例子都是使用控制器函数/选项的链式指令。
我想要做的是按照通常的规范定义一个控制器,然后有一个指令,它将嵌套在控制器中,标记需要它并获得对它的访问权。
像这样:
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错误 - 它无法找到控制器。注意我使用“^”来表示祖先,因为在所有情况下,外部包含元素将包含控制器。
我只是误解了这个吗?我加倍了三重检查拼写等。在这种情况下,“控制器”是否与仅通过指令定义的实际“角度控制器”不同?
感谢您的帮助。