如何在指令中访问子控制器和父控制器?

boy*_*nov 3 javascript angularjs angularjs-directive

我们有两个指令,叫做parentchild.它们都定义了控制器,它们具有一些功能.对于child指令,我们可以:

  • 访问parent controllerrequire属性(require: '^parent'),从而接收第四参数我们与它的值链接函数:function link(scope, elem, attrs, parentCtrl)
  • 访问child controller:不使用require,第四个链接参数将是我们的childController.

所以,问题是:我们如何能够引用在孩子和家长控制器child的连接功能?这是一个带有示例的plunker:http://plnkr.co/edit/WzU6iJgf2zLLApFHeiEG?p = preview

pix*_*its 5

您可以将数组传递给指令定义的'require'属性,该属性包括子指令和父指令.链接函数的第4个参数是一个数组:

app.directive('childDirective', function() {
    require: ['childDirective', '^parentDirective'],
    link: function(scope, element, attr, ctrls) {
        var childCtrl = ctrls[0];
        var parentCtrl = ctrls[1];
        ...
    }
});
Run Code Online (Sandbox Code Playgroud)