Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS-如何使用“获取指令中的指令控制器”;要求;_Javascript_Angularjs_Angularjs Directive_Angularjs Controller - Fatal编程技术网

Javascript AngularJS-如何使用“获取指令中的指令控制器”;要求;

Javascript AngularJS-如何使用“获取指令中的指令控制器”;要求;,javascript,angularjs,angularjs-directive,angularjs-controller,Javascript,Angularjs,Angularjs Directive,Angularjs Controller,我有一个要求的指令。现在我想在link函数中获得所需的控制器实例和指令的控制器。这怎么可能?如果我设置'require',link函数的第四个参数只包含所需的控制器。如果我没有设置要求,link函数的第四个参数包含指令的控制器。如何获得两者?您应该需要两者,那么第四个参数将是控制器数组(与所需指令的顺序相同) 例如,从Angular的ngModel指令的源代码(需要访问NgModelController及其包装表单的FormController): var ngModelDirective =

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

您应该需要两者,那么第四个参数将是控制器数组(与所需指令的顺序相同)

例如,从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;
            ...