我们有两个指令,名为parent
和child
。它们都定义了控制器,它们具有一些功能。对于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
答案 0 :(得分:5)
您可以将数组传递给'要求'指令定义的属性,包括子指令和父指令。链接函数的第4个参数是一个数组:
app.directive('childDirective', function() {
require: ['childDirective', '^parentDirective'],
link: function(scope, element, attr, ctrls) {
var childCtrl = ctrls[0];
var parentCtrl = ctrls[1];
...
}
});