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

时间:2015-04-20 07:43:36

标签: javascript angularjs angularjs-directive

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

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

所以问题是:我们如何在child的链接函数中引用两个子控制器和父控制器?这是一个带有示例的plunker:http://plnkr.co/edit/WzU6iJgf2zLLApFHeiEG?p=preview

1 个答案:

答案 0 :(得分:5)

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

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