Я хочу создать массив с идентификатором продуктов.
У меня есть такая форма:
this.myform= new FormGroup({
'products_id': this.fb.array([], Validators.required),
'unit_price': new FormControl('', [Validators.required)
});
Моя функция отправки:
onAddProducts() {
this.areWeWaiting = true;
let newp = this.myform.value
let newprod= new Products(
newp
);
this.ws.createP(newprod).subscribe(
result => {
if (result === true) {
} else {
this.areWeWaiting = false;
}
},
error => {
this.areWeWaiting = false;
}
);
}
Результат отэтот код является этим массивом: ["Y4FQS", "qOKTN", "sRm54"]
Я хочу получить такой результат: ["1", "2", "3"]
Я хочу отправить идентификатор продукта, а не название продукта.
Для этого я пытаюсьчтобы изменить мой код следующим образом:
Я объявляю свойство prodId: Array<string>[];
и в функции submit:
onAddProducts() {
this.areWeWaiting = true;
let newp = this.myform.value
newp.products_id= this.prodId;
let newprod= new Products(
newp
); ........}
Этот продукт я принимаю в форме этой функции:
updateForm(ev: any, idd: any, componentid: any) {
if (ev.isUserInput) {
if (componentid === 'products_id') {
this.prodId = idd;
this.myForm['controls']['products_id'].setValue(ev.source.value);
} else {
console.log('ooops');
}
}
}
Это функция, которая получает весь продукт из API:
this.ws.getAllproducts().subscribe(
products=> {
this.products= products.map((prod) => {
this.filteredProducts = this.myForm.controls['products_id'].valueChanges
.pipe(
startWith(''),
map(value => this._filters(value))
);
return new Products(prod);
});
}
);
эта функция возвращает:
{
"StatusCode": 0,
"StatusMessage": "OK",
"StatusDescription": [
{
"products_id": "1",
"products_name": "PkMGo",
"unit_price": 100,
},
{
"products_id": "2",
"products_name": "Y4FQS",
"unit_price": 100,
},
{
"products_id": "3",
"products_name": "Mlld0",
"unit_price": 100,
},
{
"products_id": "4",
"products_name": "q0KTN",
"unit_price": 100,
},...
]
}
Этот код показывает мне только идентификатор последнего продукта, например "3"
Можете ли вы спросить меня, пожалуйста, как разместить массив, как ["1", "2", "3"]
Спасибо!