gpt4 book ai didi

angularjs - AngularJS 中指令到指令的通信?

转载 作者:行者123 更新时间:2023-12-02 08:01:23 25 4
gpt4 key购买 nike

我已经知道您可以在指令中设置 Controller ,并且其他指令可以调用该 Controller 上的函数。这是我当前的指令:

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>

谢谢!

最佳答案

听起来您需要有 Angular 的服务。 http://docs.angularjs.org/guide/dev_guide.services

这将允许您跨指令共享功能。

这是一个类似的问题:Sharing data between directives

关于angularjs - AngularJS 中指令到指令的通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16628616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com