是否可以在AngularJs指令上动态设置“require”选项?
我试图了解是否可以动态设置指令的require选项。例如是否可以在AngularJs指令上动态设置“require”选项?,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我试图了解是否可以动态设置指令的require选项。例如 app.directive('test', [function () { return { require: someVar }} 我想在测试中访问未知的控制器。控制器未知,因为我正在通过配置动态生成页面。理想地说,我想 <test some-var="^parent"><test> 编辑-我还应该声明我只想在页面加载时设置一次。在那之后它不会改变 谢谢 Chad您是要访问指令的控制器,还是
app.directive('test', [function () {
return {
require: someVar
}}
我想在测试中访问未知的控制器。控制器未知,因为我正在通过配置动态生成页面。理想地说,我想
<test some-var="^parent"><test>
编辑-我还应该声明我只想在页面加载时设置一次。在那之后它不会改变
谢谢
Chad您是要访问指令的控制器,还是要访问任意控制器?根据您的问题,听起来您只是想要一个控制器,这需要使用与require方法不同的方法
directive('testDirective',function() {
var directive = {
restrict: 'E',
link: link,
name: "myController",
controller: "@",
controllerAs: "vm",
bindToController: true,
template: "<div>{{vm.testMessage}}</div>"
}
return directive;
function link(scope,iElement,iAttrs) {
}
});
这里有一个JSFIDLE,演示了这一点
那么你真的需要它吗?您不能简单地使用范围继承或通过绑定传递所需的内容吗?您试图实现什么?require就像使用一个API——您需要知道您将获得什么样的控制器作为它的公共API公开,这样才有意义。因此,为了避免一个XY问题,请给出一个例子,说明您最终想要实现的目标
<test-directive my-controller="mainController"></test-directive>
controller('sampleOneController', function() {
var vm = this;
vm.testMessage = "from sample One Controller";
}).