如果我的指令FilePicker
在其模板中包含Modal
指令的实例,我如何获得对Modal
指令实例的引用?控制器来自FilePicker
的控制器?
我当然要问,因为我找不到任何方法可以做到这一点,但鉴于我所听到的关于指令控制器是指令指令通信的基石而不是指导控制器的一切,这是一个令人痛苦的失望。通过$scope
完成所有事情。
答案 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();
}
}