如何访问子指令的控制器

时间:2014-12-23 11:51:38

标签: angularjs angularjs-directive

如果我的指令FilePicker在其模板中包含Modal指令的实例,我如何获得对Modal指令实例的引用?控制器来自FilePicker的控制器?

我当然要问,因为我找不到任何方法可以做到这一点,但鉴于我所听到的关于指令控制器是指令指令通信的基石而不是指导控制器的一切,这是一个令人痛苦的失望。通过$scope完成所有事情。

1 个答案:

答案 0 :(得分:0)

模板中的某个实例?什么?模板只是一个简单的字符串,就是这样。 关于控制器: DOM元素可以由角度控制器管理。指令正在应用于DOM元素。然后也可以使用控制器。您可以通过以下方式简单地描述指令控制器:

// directive with name parentDirective
{
    link: function () { ... },
    restrict: 'A',
    controller: [ '$scope', function ($scope) { 
      this.sayHello =  function () { alert('hello'); } 
      // 'this' references the instance of the directive controller and then can be required by a child 

    }],
    template: '<div><child-directive/></div>'

}

// child directive with the name childDirective
{
  require: '^parentDirective',
  link: function (scope, $element, attributes, parentDirectiveController) {
      parentDirectiveController.sayHello();
  }
}