Как обнаружить, что после значения патча данные формы были изменены или нет в angular6? - PullRequest
0 голосов
/ 02 октября 2019

В моем приложении я сделал patchValue для моего formControl, когда пользователь нажимает кнопку «Далее / отправить», я хочу определить, изменилось ли значение формы или нет?

Пробовал

  • ngOnChanges(changes: SimpleChanges): void {
      alert("Change found");
    }
    
  • this.partnerForm.valueChanges.subscribe(val => {
      console.log("[partnerForm valueChanges subscribe]", val);
    });
    

Причина, по которой мне нужноthis?

  • Мне нужно вызывать API, когда в значении формы есть какие-либо изменения, в противном случае мне просто нужно переместить пользователя на следующую страницу.

Ответы [ 2 ]

1 голос
/ 02 октября 2019

form.valueChanges не работает после значения патча. поэтому для обнаружения изменений вы можете сравнить ваши объекты:

let valueChange = (JSON.stringify(oldObj) === JSON.stringify(currentObj))

он вернет true или false в соответствии с вашими изменениями значения.

0 голосов
/ 02 октября 2019

сначала получите ваш элемент управления как FormControl, затем отметьте yourFormControl.hasChanged(), это возвращает true, если значение вашего элемента управления формы изменяется

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