Javascript Angular JS指令定义-需要ngModelController以及自定义控制器

Javascript Angular JS指令定义-需要ngModelController以及自定义控制器,javascript,angularjs,dependency-injection,angularjs-directive,angularjs-compile,Javascript,Angularjs,Dependency Injection,Angularjs Directive,Angularjs Compile,我试图编写角度指令,使其大部分功能都包含在控制器的代码中,而link函数仅用于将两个不同的指令控制器绑定在一起 在“需要”控制器和定义“控制器”时,我遇到了一个问题。我应该如何在link函数中获得指向我指定的控制器的引用 示例代码(当然不包括所有周围的module.directive内容) “控制器”包含ngModelController,但不提供访问CustomDirectiveCtrl的方法 如何从链接功能访问ngModelController和CustomDirectiveCtrl?有时,

我试图编写角度指令,使其大部分功能都包含在控制器的代码中,而link函数仅用于将两个不同的指令控制器绑定在一起

在“需要”控制器和定义“控制器”时,我遇到了一个问题。我应该如何在link函数中获得指向我指定的控制器的引用

示例代码(当然不包括所有周围的module.directive内容)

“控制器”包含ngModelController,但不提供访问CustomDirectiveCtrl的方法


如何从链接功能访问ngModelController和CustomDirectiveCtrl?

有时,除非您尝试向其他人解释,否则您永远不会发现问题

在查看Angular JS的ngModel的源代码后,我找到了解决方案。以下是如何修复我的上述代码,以防其他人遇到理解相同的问题:


我认为需要使用不同的语法来获得自己的控制器,而不是获得不同型号的控制器。这比我想象的要简单。

这个问题的可能重复,虽然很好,但却是:的重复,它有一个非常好的答案already@Fire-Dragon DoL,这是一个复制品。我觉得另一个问题真的可以用一段代码来解释这个问题。同样,该问题中引用的“bindToController”掩盖了真正的问题,即:“我如何在链接函数体中访问指令自己的控制器?”你是对的,我想知道在这种情况下应该怎么做,我想用你的标题搜索另一个问题(P.S.谢谢你接受这个答案并改进它)。同时考虑一下这是我在网上发现的唯一的资源,其他人也在探索同样的问题。
return {
    require:'ngModel',
    controller: 'CustomDirectiveCtrl',
    link: function(scope, element, attrs, controllers)
    {
        console.log(controllers);
    }
};
module.directive('customDirective', function(){
    return {
          require:['customDirective', 'ngModel'],
          controller: 'CustomDirectiveCtrl',
          link: function(scope, element, attrs, controllers){
               // CustomDirectiveCtrl is controllers[0],
               // NgModelController is controllers[1]
               console.log(controllers);
          }
    }
});