Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.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 在我的自定义指令中未定义控制器模型_Javascript_Jquery_Angularjs - Fatal编程技术网

Javascript 在我的自定义指令中未定义控制器模型

Javascript 在我的自定义指令中未定义控制器模型,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我在angular应用程序中添加了一个自定义指令,该指令负责验证邮件是否有效,该指令似乎运行良好,因为我收到了错误消息: myApp.directive('validateEmail', function(ValidationService) { return { require: 'ngModel', controller: function($element) { var ctrl = $element.controller('ngModel'

我在angular应用程序中添加了一个自定义指令,该指令负责验证邮件是否有效,该指令似乎运行良好,因为我收到了错误消息:

myApp.directive('validateEmail', function(ValidationService) {
    return {
      require: 'ngModel',
      controller: function($element) {
        var ctrl = $element.controller('ngModel');

        ctrl.$validators.validateEmail =
          function(modelValue, viewValue) {
            return ValidationService.isValidEmail(viewValue);
        };
      }
    };
});
当我试图提交表格时,在控制台中出现了以下奇怪的错误:

错误:ctrl未定义 控制器@ 援引@ $ControllerProvider/this$gethttps://code.angularjs.org/1.5.1/angular.js:9886:24 nodeLinkFn@ 复合物@ 公共链接fn@
CompliationGenerator/将控制器更改为链接

myApp.directive('validateEmail', function(ValidationService) {
    return {
      require: 'ngModel',
      link: function (scope, element, attrs, ctrl) {
        ctrl.$validators.validateEmail =
          function(modelValue, viewValue) {
            return ValidationService.isValidEmail(viewValue);
        };
      }
    };
});

将控制器更改为链接

myApp.directive('validateEmail', function(ValidationService) {
    return {
      require: 'ngModel',
      link: function (scope, element, attrs, ctrl) {
        ctrl.$validators.validateEmail =
          function(modelValue, viewValue) {
            return ValidationService.isValidEmail(viewValue);
        };
      }
    };
});