我试图了解是否可以动态设置指令的“require”选项。例如......
app.directive('test', [function () {
return {
require: someVar
}}
我想访问“test”中的未知控制器。控制器未知,因为我通过配置动态生成页面。理想情况下我想......
<test some-var="^parent"><test>
编辑 - 我还应该声明我只想在页面加载时设置一次。之后它不会改变。
谢谢,
乍得
答案 0 :(得分:0)
您是在尝试访问指令的控制器,还是访问任意控制器?根据你的问题,听起来你只需要一个控制器,这需要使用与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) {
}
});
在这种情况下,绑定到模板的控制器由name属性驱动,可以在指令DOM元素上分配,就像这样
<test-directive my-controller="mainController"></test-directive>
将my-controller属性设置为mainController,您可以定义一个任意控制器来定义自己的testMessage属性
controller('sampleOneController', function() {
var vm = this;
vm.testMessage = "from sample One Controller";
}).
这是一个jsfiddle与此演示