@DeboshiR
Свободу разработчикам!!!

Как вызвать функцию после изменение ngModel?

Создал примерно такой инпут:
<input type="text" [(ngModel)]="name">

Хотелось бы отследить изменение name через RxJS вместе с его замечательным Observer. В интернетах в основном предлагают использовать (ngChange). Не уж то не существует способа через Observer?
  • Вопрос задан
  • 91 просмотр
Пригласить эксперта
Ответы на вопрос 2
Xuxicheta
@Xuxicheta Куратор тега Angular
инженер
Реактивную форму сделайте, и будет вам Observable
А вообще [(ngModel)] это сахар для [ngModel]="name" (ngModelChange)="name = $event"

А ngChange это из angular.js
Ответ написан
Комментировать
есть как минимум 2 способа решения для получения нашего любимого Observable

1 способ
Сделать реактивную форму и через valueChanges слушать изменения

2 способ
HTML
<input type="text" [(ngModel)]="name" #myInput>

TS
@ViewChild('myInput') myInput: ElementRef | undefined;

ngAfterViewInit() {
    fromEvent(this.myInput?.nativeElement, 'keyup') // <- тут слушаете событие, которое Вам нравится
      .pipe(
        map((el: any) => el.target.value),
        takeUntil(this.ngUnsubscribe$),
      )
      .subscribe((value: string) => {
        console.log(value);
      });
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы