Angular 指令 - 需要 ngModel 和 form^

Angular Directive - require ngModel AND form^

在 angular 指令中,您可以要求 form^ AND ngModel 吗?是否可以在链接功能中访问表单和控制器?

angular.module('myApp')
.directive('passwordValidation', passwordValidation)
function passwordValidation(){
  return {
    replace: true,
    require: 'ngModel', // also 'form^' ?
    scope: {
      userName: '@'
    },
    link: function(scope, elem, attr, ctrl, form) {
    ...

是的,可以通过在 require 属性 中提供一个数组来实现。使用它,您将获得控制器数组作为 link 函数中的第 4 个参数。

angular.module('myApp')
.directive('passwordValidation', passwordValidation)
function passwordValidation(){
  return {
    replace: true,
    require: ['ngModel','^form'], // also 'form^' ?
    scope: {
      userName: '@'
    },
    link: function(scope, elem, attr, controllers) {
      var ngModelCtrl = controllers[0],formCtrl = controllers[1]; 
    }
  }}