加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 两个指令(不是嵌套在HTML中)如何相互通信?

发布时间:2020-12-17 06:50:15 所属栏目:安全 来源:网络整理
导读:我对angularJS很新,我有一个问题(希望它不是那么愚蠢): 我有2个指令(不嵌套): div directive1/divdiv directive2/div 现在我希望指令与控制器相互通信(Ive在directive1中定义了’controller:’): myApp .directive('directive2',function () { return {
我对angularJS很新,我有一个问题(希望它不是那么愚蠢):

我有2个指令(不嵌套):

<div directive1></div>
<div directive2></div>

现在我希望指令与控制器相互通信(Ive在directive1中定义了’controller:’):

myApp
    .directive('directive2',function () {
        return {
            require: "^directive1",link: function (scope,element,attrs,directive1Ctrl) {
                directive1Ctrl.doSomething();
            }
        };
    });

但我总是得到’未找到控制器’例外..(我不确定^因为它只用于通过父母向上搜索).

如果它们没有嵌套,是否不能使用指令2中的directive1中定义的控制器?
我是否必须使用“单独”控制器,它们都需要相互协作?

解决方法

Do i have to use a ‘seperate’ Controller which both require to work with each other?

这很接近.在应用程序的不同部分(两个控制器,两个指令,一个指令和一个控制器等)之间共享数据和功能的标准方法是在服务中提供该数据或功能.然后可以将此服务注入任何需要它的应用程序组件.

在您的情况下,您可以创建一个提供doSomething函数的服务,并将其注入directive1和directive2.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读