У меня проблема с автозаполнением.
HTML
<div class="row">
<div class="input-field col s12">
<select formControlName="p_Product_type_id" id="p_Product_type_id" [(ngModel)]="variable" materialize="material_select"
[materializeSelectOptions]="producttype">
<option value="" disabled selected>Product Type*</option>
<option *ngFor="let item of producttype;let i=index;" [value]="item.product_type_id">{{item.product_type_name}}</option>
</select>
</div>
<div class="input-field col s12">
<div *ngIf="addProductForm.controls.p_Product_type_id.value === '222222'">
<input formControlName="p_product_id" id="p_product_id" matInput placeholder="Select Sensors*" aria-label="State"
[matAutocomplete]="auto" autoActiveFirstOption [formControl]="sensors_id">
<mat-autocomplete #auto="matAutocomplete" [displayWith]="displayWith">
<mat-option (onSelectionChange)="updateForm($event, s.sensors_id, 'p_product_id')" *ngFor="let s of filteredOptionsSensor | async"
[value]="s.sensor_serial">
{{s.sensor_serial}}
</mat-option>
</mat-autocomplete>
</div>
<div *ngIf="addProductForm.controls.p_Product_type_id.value === '1111'">
<input formControlName="p_product_id" id="p_product_id" matInput placeholder="Select Contract*" aria-label="State"
[matAutocomplete]="auto1" autoActiveFirstOption [formControl]="contrat_id">
<mat-autocomplete #auto1="matAutocomplete" [displayWith]="displayWith">
<mat-option (onSelectionChange)="updateForm($event, c.contrat_id, 'p_product_id')" *ngFor="let c of filteredOptionsContract | async"
[value]="c.contratdesc">
{{c.contratdesc}}
</mat-option>
</mat-autocomplete>
</div>
</div>
Группа форм
this.addProductForm = this.fb.group({
'p_Product_type_id': [null],
'p_product_id': new FormControl('', Validators.required),
'p_Quantity': new FormControl('', Validators.required),
'p_Line_num': new FormControl(this.randomString(), Validators.required),
'p_Description': new FormControl(''),
'p_Unit_price': new FormControl('', Validators.required),
'p_Subtotal': new FormControl('', Validators.required)
});
IМожно выбрать значение с помощью этой функции:
sensorid: number;
contractid: number;
updateForm(ev: any, idd: any, componentid: any) {
console.log('ev', ev)
console.log('idd', idd)
console.log('componentid', componentid)
if (ev.isUserInput) {
if (componentid === 'p_product_id') {
this.sensorid = idd;
this.addProductForm['controls']['p_product_id'].setValue(ev.source.value);
} else if (componentid === 'p_product_id') {
this.contractid = idd;
this.addProductForm['controls']['p_product_id'].setValue(ev.source.value);
} else {
console.log('wrong');
}
}
}
Проблема заключается в том, что когда я отправляю товар, в свойстве p_product_id
отправляем название товара, я хочу отправить id
товара, на изображенииsensors_id
что я хочу представить.
Как на картинке ниже:
onAddProduct() {
let products = [];
let newProduct = this.addProductForm.value
this.product = newProduct;
newProduct.contrat_id = this.contractid;
newProduct.sensors_id = this.sensorid;
console.log(newProduct)
this.ps.addProduct(newProduct);
this.router.navigate(['/home]);
}
Пожалуйста, предложите.