когда вы устанавливаете значение с помощью myInput.value = selectedCode.code;
, вы меняете атрибут значения элемента ввода DOM.
однако, как объяснено в docs директива ngForm создает и регистрирует экземпляр FormGroup в элементе формы. Используя ngModel
с атрибутом name
для элемента ввода, FormControl создается как дочерний элемент FormGroup.
Следовательно, если вы хотите программно изменить значение любого элемента в форме, это следует сделать с помощью функций API ReactiveForms. В противном случае изменения в DOM не будут отражены в базовом FormControl, если не будет явного взаимодействия пользователя с DOM.
В основном, если вы хотите изменить значение любого элемента формы программно, вы должны сделать это в базовом FormControl, а не в DOM. Таким образом, изменение подписи showPartPicker
следующим образом должно помочь;
<button type="button" (click)="showPartPicker(formData.controls.warehouse_part_code)">
</button>
и
showPartPicker(formCtrl: AbstractControl) {
const modalPartPicker = this.modalService.open(WarehousePartPickerComponent);
modalPartPicker.componentInstance.emmiter
.subscribe((selectedCode:WarehousePartGet) => {
formCtrl.setValue(selectedCode.code);
});
}