Issue
I use angular 11.1.2 in my project.
I try to store number ids in an array of number :
let list: number[] = [];
dtInstance.rows({selected: true}).every((item) => {
list.push(dtInstance.row(item).data()[0]);
});
this.dService.renewDossiers(list,form.value['date']).then(
() => {
this.refreshDossiers();
}
);
And then send it via HTTP POST :
renewDossiers(dossiers:number[], date:Date): Promise<any> {
return this.httpClient.post(environment.API_URL+'/dossier/renouvellement',{dossiers:dossiers,date:date}).toPromise();
}
But the data sent in the post request for ‘dossiers’ is a string array :
{dossiers: ["3","4"], date: "2022-01-01"}
I don’t understand why dossiers contain text values while I sent a number[] type in post params.
It sould send :
{dossiers: [3,4], date: "2022-01-01"}
Can someone explain me what is wrong ?
Solution
Typecast before pushing into the list.
Final outcome:
dtInstance.rows({selected: true}).every((item) => {
list.push(+(dtInstance.row(item).data()[0]));
});
Added extra ()
brackets for safety.