У меня есть 2 поля формы, которые представляют собой средства выбора даты, простую форму «до» и «от».
Проблема в том, что valueChanges
в приведенном ниже коде срабатывает для обоих элементов управления формы, независимо от того, с каким средством выбора даты взаимодействовал пользователь. «Другой» элемент управления формы, с которым не взаимодействовали, всегда пуст.
Таким образом, независимо от того, какую дату вы выберете, функция addDateFilterToRoute(changes)
запускается дважды. Я не понимаю, почему.
HTML
<div class="datepicker-container">
<div class="form-group">
<form-input-datepicker-dropdown
[group]="form"
controlName="deliveryFrom"
></form-input-datepicker-dropdown>
</div>
<div class="form-group">
<form-input-datepicker-dropdown
[group]="form"
controlName="deliveryTo"
></form-input-datepicker-dropdown>
</div>
</div>
КОМПОНЕНТ TS
ngOnInit(): void {
this.buildForm();
this.handleFormChanges();
}
buildForm(): void {
this.form = this.fb.group({
deliveryFrom: '',
deliveryTo: ''
});
}
handleFormChanges(): void {
this.form
.get('deliveryFrom')
.valueChanges.pipe(takeUntil(this.unsubscribe$))
.subscribe(changes => this.addDateFilterToRoute(changes, 'deliveryFrom', true));
this.form
.get('deliveryTo')
.valueChanges.pipe(takeUntil(this.unsubscribe$))
.subscribe(changes => this.addDateFilterToRoute(changes, 'deliveryTo', false));
}
Поэтому, когда я меняю deliveryFrom
, он вызывает this.addDateFilterToRoute(changes, 'deliveryTo', false)
deliveryFrom
, он вызываетthis.addDateFilterToRoute(changes, 'deliveryTo', false)
? - person martin   schedule 18.11.2019<form-input-datepicker-dropdown>
как-то возится со значениями формы? Почему он все равно принимает параметр[group]="form"
, когда он должен установить только один FormControl. - person martin   schedule 18.11.2019