Javascript 如何在指令AngularJS之间传递对象?

Javascript 如何在指令AngularJS之间传递对象?,javascript,angularjs,angularjs-directive,angularjs-scope,Javascript,Angularjs,Angularjs Directive,Angularjs Scope,如果我在指令A的链接函数中定义/实例化对象foo。从单独指令的链接函数访问同一对象的方法是什么?引用自: 控制器在预链接阶段之前实例化,并且 与其他指令共享(请参见require属性)。这允许 相互通信并增强彼此能力的指令 行为 这意味着要在同一对象或其子对象上的两个指令之间共享数据,您需要在指令A控制器中公开foo,并在指令B中注入require选项 指令如下所示: .directive("dirA", function () { return { controller

如果我在指令A的链接函数中定义/实例化对象
foo
。从单独指令的链接函数访问同一对象的方法是什么?

引用自:

控制器在预链接阶段之前实例化,并且 与其他指令共享(请参见require属性)。这允许 相互通信并增强彼此能力的指令 行为

这意味着要在同一对象或其子对象上的两个指令之间共享数据,您需要在指令A控制器中公开foo,并在指令B中注入
require
选项

指令如下所示:

.directive("dirA", function () {
    return {
        controller: function ($scope, $element, $attrs) {

        },
        link: function ($scope, $element, $attrs, controller) {
            controller.foo = $attrs.dirA;
        }
    }
})
.directive("dirB", function () {
    return {
        link: function ($scope, $el, $attr, controller) {
            $scope.shared = controller.foo;
        },
        require: "dirA"
    }
})

.

我没有足够的声誉来评论,所以我将在这里添加它

为有同样问题的人提供一些附加信息。这取决于指令的使用位置

^前缀表示此指令在上搜索控制器 它的父级(没有^prefix,该指令将查找 控制器(仅在其自身元素上)