我已经知道您可以在指令中设置控制器,并且其他指令可以调用该控制器上的函数。这是我当前的指令的样子:
app.directive("foobar", function() {
return {
restrict: "A",
controller: function($scope) {
$scope.trigger = function() {
// do stuff
};
},
link: function(scope, element) {
// do more stuff
}
};
});
我知道我可以这样称呼它:
app.directive("bazqux", function() {
return {
restrict: "A",
require: "foobar",
link: function(scope, element, attrs, fooBarCtrl) {
fooBarCtrl.trigger();
}
};
});
但是,我希望能够从任何指令调用触发器,而不仅仅是我自己的自定义指令,如下所示:
<button ng-click="foobar.trigger()">Click me!</button>
如果这不起作用,有没有办法引入第三条指令来实现它?像这样?
<button ng-click="trigger()" target-directive="foobar">Click me!</button>
谢谢!