@ ngxs / form-plugin: обработка изменения одного поля - PullRequest
1 голос
/ 08 ноября 2019

Плагин формы обеспечивает UpdateFormValue действие, которое позволяет обрабатывать изменения в полях формы. Однако он отправляется для каждого изменения поля формы. Поэтому, если у меня есть несколько полей в форме (например, адрес электронной почты и имя), и я хочу что-то сделать при изменении адреса электронной почты, но игнорирую изменение имени, я должен подписаться на valueChanges, наблюдаемый в компоненте, подобном этому:

...
this.myForm.controls.email.valueChanges.subscribe(emailValue => {
    /* dispatch my special action Actions.UserChangedEmail or something */
}

Это правильный подход или возможно обработать его в состоянии с помощью метода, который использует @Action(UpdateFormValue) или что-то подобное?

1 Ответ

0 голосов
/ 08 ноября 2019

Вы можете использовать это

 this.myForm.get('email').valueChanges.subscribe(value => {
    this.myForm.get('email').setValue(value, { onlySelf: true, emitEvent: false, emitModelToViewChange: true });
}, error => { }, () => { });
...