Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以在AngularJs指令上动态设置“require”选项?_Angularjs_Angularjs Directive - Fatal编程技术网

是否可以在AngularJs指令上动态设置“require”选项?

是否可以在AngularJs指令上动态设置“require”选项?,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我试图了解是否可以动态设置指令的require选项。例如 app.directive('test', [function () { return { require: someVar }} 我想在测试中访问未知的控制器。控制器未知,因为我正在通过配置动态生成页面。理想地说,我想 <test some-var="^parent"><test> 编辑-我还应该声明我只想在页面加载时设置一次。在那之后它不会改变 谢谢 Chad您是要访问指令的控制器,还是

我试图了解是否可以动态设置指令的require选项。例如

  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"; 
}).