AngularJS - 如何使用"'"来获取指令中的指令控制器。

时间:2014-05-14 20:06:08

标签: javascript angularjs angularjs-directive angularjs-controller

我有一个带有require的指令。现在我想在链接函数中获取所需的控制器实例和指令的控制器。怎么可能?如果我设置'要求'链接函数的第四个参数仅包含所需的控制器。如果我没有设置要求,则链接函数的第四个参数包含指令的控制器。如何获得两者?

1 个答案:

答案 0 :(得分:2)

你应该同时需要两个,然后第四个参数将是一个控制器数组(与所需指令的顺序相同。

E.g。来自Angular的ngModel指令的源代码(需要访问NgModelController及其包装形式的FormController):

var ngModelDirective = function() {
    return {
        require: ['ngModel', '^?form'],
        controller: NgModelController,
        link: function (scope, elem, attrs, ctrls) {
            ...
            var modelCtrl = ctrls[0],
                formCtrl  = ctrls[1] || nullFormCtrl;
            ...