angular подтверждение формы обещания - PullRequest
0 голосов
/ 08 марта 2020

Я новичок в Angular и пытаюсь понять базовый c код проверки формы. здесь ниже checkValidEmail пытается проверить, равен ли введенный пользователем адрес электронной почты super@seret.com. Что я не понимаю, так это, когда адрес электронной почты равен super@seret.com, почему проверка формы неверна? Для полного исходного кода - https://stackblitz.com/edit/angular-p4bz6e?file=src%2Fapp%2Fapp.component.ts

checkValidEmail(control: AbstractControl) {
    return new Promise((resolve, reject) => {
      setTimeout(() => {
        if (control.value === 'super@seret.com') {
            resolve({ test: false })
        } else {resolve(null)}
      }, 2000)
    })

Ответы [ 2 ]

1 голос
/ 10 марта 2020

Проверка формы завершится неудачей, поскольку в абстрактном элементе управления или пользовательской проверке checkValidEmail вы возвращаете { emailIsTaken: true }. поэтому к любому ответу, возвращенному из пользовательской проверки, будет добавлено свойство ошибки emailcontrol.

, следовательно, форма становится недействительной из-за ошибки, добавленной из определенного абстрактного элемента управления.

Попробуйте напечатать его в app.component. html как показано ниже.

<p> Form emailIsTaken {{form.controls.email.errors | json}}</p>
0 голосов
/ 15 марта 2020

Просто измените условие в вашей пользовательской проверке и попробуйте логи c,

checkValidEmail(control: AbstractControl) {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      if (control.value !== 'super@secret.com') {
        resolve({ emailIsTaken: true })
      } else {resolve(null)}
    }, 2000)
  })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...