不能使用指令控制器并且需要指令控制器(并且它们都可用)

Can't use a Directive Controller AND Require a Directive Controller (and have them both be available)

所以我有一个应该与 ng-form 一起使用的验证指令。我需要使用他们的控制器,但我还需要将元素 click event 绑定到我自己的控制器。如果我只使用 require 我可以访问那个表单控制器,如果我只使用 controller 我可以访问我的控制器,但是如果我同时使用 requirecontroller 我只能得到访问所需的控制器!

angular.module('app')
  .directive('myValidation', function() {
    return {
      controller: function MyController() {

      },
      link: function($scope, ele, attr, MyCtrl) {
        // All is well
      }
    };
  })
  .directive('myValidationTwo', function() {
    return {
      require: 'form',
      controller: function MyController() {

      },
      link: function($scope, ele, attr, formCtrl) {
        // MyCtrl is not available!
        // formCtrl is not an array of controllers!
      }
    };
  });

如果这不可能的话,这似乎是一个重大疏忽!

您只需要具体要求即可。

angular.module('app')
  .directive('myValidation', function() {
    return {
      controller: function MyController() {

      },
      link: function($scope, ele, attr, MyCtrl) {
        // All is well
      }
    };
  })
  .directive('myValidationTwo', function() {
    return {
      require: ['myValidationTwo', 'form'],
      controller: function MyController() {

      },
      link: function($scope, ele, attr, ctrl) {
        var MyCtrl = ctrl[0];
        var formCtrl = ctrl[1];
      }
    };
  });