Я отправляю неопределенное product_id: undefined
, когда я не изменяю свой product_id
.
У меня есть этот HTML-код:
<div class="input-field col s12">
<input formControlName="product_id" type="text" placeholder="Select Product" aria-label="Number" matInput
[matAutocomplete]="auto">
<mat-autocomplete autoActiveFirstOption #auto="matAutocomplete" [displayWith]="displayWith">
<mat-option (onSelectionChange)="updateForm($event, homebox.product_id, 'product_id')" *ngFor="let homebox of filteredHomebox | async"
[value]="homebox.serial_number">
{{homebox.serial_number}}
</mat-option>
</mat-autocomplete>
</div>
в компоненте TS У меня есть:
homeboxs: Homebox[] = [];
homebox: Homebox;
homeboxp: ProductHB;
productId : 0;
selectedHomebox: string = this.homeboxs.filter(
x => x.product_id=== this.homebox.product_id[0])
.map(y => y.product_id).join('');
constructor(..) {
this.homebox = new Homebox('');
this.editForm= new FormGroup({
'product_id': new FormControl('', [Validators.required, Validators.nullValidator]),
});
}
ngOnInit() {
this.populateForm();
this.hs.homeboxGetall().subscribe(
homeboxs => {
this.homeboxs = homeboxs
let hbb = this.homeboxs.find(x => x.product_id=== this.homeboxp.product_id);
if (hbb) {
this.selectedHomebox = hbb.product_id;
} } );
}
populateForm() {
.....
homeboxp => {
this.homeboxp = homeboxp;
this.editForm.controls['product_id'].setValue(homeboxp.serial_number);
.....
} );
}
onEditP() {
let newHbp = this.editForm.value;
newHbp.product_id= this.productId;
let editHomeboxP = new ProductHB(newHbp);
this.editForm.value.product_id= this.selectedHomebox;
this.ws.update(editHomeboxP).subscribe(
result => {
....
} );
}
updateForm(ev: any, idd: any, componentid: any, index) {
if (ev.isUserInput) {
if (componentid === 'product_id') {
this.productId= idd;
this.editForm['controls']['product_id'].setValue(ev.source.value);
} else {
console.log('error');
}
}
}
В этом коде, только проблема в этой строке
onEditHomeboxP() {
.....
this.editForm.value.product_id= this.selectedHomebox;
...
}
Отображение не определено, но на самом деле this.selectedHomebox
имеет идентификатор продукта.
Я хочу отправить идентификатор продукта, когда я изменю или нет этот продукт.
Любая идея, пожалуйста?