我将自定义指令添加到我的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);
};
}
};
});