markasdirty не работает в особом случае Angular - PullRequest
0 голосов
/ 27 февраля 2020

во время моего Angular проекта произошла особая ошибка. Как вы все знаете метод markAsDirty () для AbstractControl, он работает так, как задумано, почти во всех случаях. Но тогда у меня есть один случай, когда он не работает

addDriver() {
this.drivers.push(
  this.fb.group({
    name: this.fb.control('', Validators.required),
    id: this.fb.control('', Validators.required),
    type: this.fb.control(''),
    method: this.fb.control(''),
    property_type: this.fb.control(''),
    range: this.fb.group({
      first_value: this.fb.control('', [AdddriverValidators.onlyNumberNegativeDOT2MAX15]),
      last_value: this.fb.control('', [AdddriverValidators.onlyNumberNegativeDOT2MAX15]),
      unit_range: this.fb.control('', [])
    }),
    value: this.fb.array([]),
    faunalDetails: this.fb.array([])
  })
);
this.adddriverForm.markAsDirty();
this.updateErrorMessages();

Но здесь он не работает для формы. Я нашел исправление, но этот код кажется очень грязным, если я помещу его в таймер, он будет работать как положено.

timer().subscribe(val => {
  this.adddriverForm.markAsDirty();
});

Надеюсь, что кто-нибудь может помочь, спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...