Почему Angular сбрасывает значение формы как пустой объект, когда я запускаю setErrors или updateValueAndValidity внутри valueChanges / statusChanges? - PullRequest
0 голосов
/ 10 июля 2020

Как видно из названия вопроса, у меня есть эта реактивная форма:

  ngOnInit(): void {
    this.loginForm = this.fb.group({
      firstName: ['fulvio', [Validators.required ]],
      lastName: ['cosco', [Validators.required ]],
      email: ['ciao@cao.com', [Validators.required, Validators.pattern(new RegExp(AppValidators.emailRegEx))]],
      password: ['ciaociA0', [Validators.required, Validators.minLength(8), AppValidators.passwordLogin()]],
    });
    this.checkPwDependingOnNameChanges();
  }

, которую я настроил в ngOnInit , затем в checkPwDependingOnNameChanges :

private checkPwDependingOnNameChanges() {
    const pw = this.loginForm.get('password');
    this.subscribe = this.loginForm.get('firstName').statusChanges
    .pipe(delay(10))
    .subscribe(val => {
      this.loginForm.get('password').updateValueAndValidity();
    });
  }

без этого delay Angular (я думаю) установите loginForm.value на {} Кто-нибудь знает, почему? или я что-то упустил?

...