Здравствуйте, im, использую async Validators, чтобы проверить, существует ли в моей базе данных письмо, и оно хорошо проверяет, оно дает мне правильный HTTP-запрос, он отлично работает, например, при первой регистрации, он будет проверьте, существует ли пользователь в моей базе данных. Проблема, например, когда я использую для восстановления пароля. В документации сказано:Проверка на основе асинхронных валидаторов
«если $ HTTP используется, то важно, что сервер возвращает код ответа успех HTTP * для того, чтобы выполнить проверку и уровень статуса 4xx
для того, чтобы отклонить проверки»
Итак, что происходит со мной, когда пользователь вставляет электронное сообщение на страницу восстановления пароля, он дает ответ «400 - неверный запрос» и делает форму/ввод недопустимой. Мне нужно изменить это beavihour, поскольку, когда запрос 400 дается, чтобы сделать проверку правильной, и если ответ равен 200, сделайте проверку ложной.
Пример кода Js:
return {
restrict: 'A',
require: 'ngModel',
link: function (scope, element, attribute, controller) {
controller.$asyncValidators.uniqueEmail = function (email) {
return $http
.post('/api/email/availability', {value: email})
then(function(response) {
//username exists, this means validation fails
return $q.reject('exists');
}, function(response) {
//username does not exist, therefore this validation passes
return true;
})
};
}
}
создать plnkr, чтобы помочь другим понять проблему лучше –