Я использую реактивный модуль формы и создал форму управления для тега выбора.При загрузке страницы я извлекаю данные из бэкэнда и связываю их с помощью patchvalue для selectformcontrol.Но при этом событие изменения select не запускается.
in .html
<select id="businessType" formControlName="businessType">
<option value="-1">Business type</option>
<option *ngFor="let business of businessTypes; let i=index;" [value]="i">{{business.b_type}}</option>
</select>
in .ts
this.formGroupObject.patchValue({
'businessType': 0 //"0" is coming from backend
})
У меня в приложении много тегов select, поэтому я не могу зафиксировать изменение значения для каждого selectformcontrol.
Я хотел обобщить, создав директиву и добавив в нее hostlistener, как показано ниже
@Directive({
selector: 'select',
})
и мой код внутри класса
@HostListener('change', ['$event'])
onChange(event) {
//do something
}
Но этот onChange не запускаетсякогда данные исправляются с помощью элемента управления формы .patchValue, когда я выбираю опцию вручную, это срабатывает.
Я хочу захватить событие, которое запускается, когда данные исправляются в теге выбора.