控制器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不确定 控制器@http://localhost:8080/myapp/js/app.js:293:9 Indoke@https://code.angularjs.org/1.5.1/angular.js:4625:16 $ controlerProvider/this。$ gethttps://code.angularjs.org/1.5.1/angular.js:9886:24 nodelinkfn@https://code.angularjs.org/1.5.1/angular.js:8870:34 compositelinkfn@https://code.angularjs.org/1.5.1/angular.js:8248:13 publicLinkfn@https://code.angularjs.org/1.5.1/angular.js:8128:30 compilationgenerator/< @https://code.angularjs.org/1.5.1/angular.js:8467:16 boundtranscludefn@https://code.angularjs.org/1.5.1/angular.js:8266:16 ControllersBoundTransClude@https://code.angularjs.org/1.5.1/angular.js:8963:20 ngifwatchaction@https://code.angularjs.org/1.5.1/angular.js:25178:15 $ digest@https://code.angularjs.org/1.5.1/angular.js:16728:23 $ apply@https://code.angularjs.org/1.5.1/angular.js:16992:13 ngmodelpostlink/< @https://code.angularjs.org/1.5.1/angular.js:26838:15 dispatch@http://localhost:8080/myapp/js/jquery-3.1.1.min.js:3:10263 add/q.handle@http://localhost:8080/myapp/js/jquery-3.1.1.min.js:3:

8325

将控制器更改为链接。

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

最新更新