ディレクティブ内にコントローラーを設定できること、および他のディレクティブがそのコントローラーの関数を呼び出すことができることは既に知っています。現在のディレクティブは次のようになります。
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>
それがうまくいかない場合、それを実現するために 3 番目のディレクティブを導入する方法はありますか? このような?
<button ng-click="trigger()" target-directive="foobar">Click me!</button>
ありがとう!