pdfmake, TypeError: Cannot assign to read only property '0' of string
pdfmake, TypeError: Cannot assign to read only property '0' of string
我正在尝试使用带有 Angular 的 pdfMake 创建 PDF。
我尝试用数组中的数据填充 Html table。这是一个对象数组。
export interface OrderDetails {
orderId? : number;
truckMenuId: number;
price? : number;
quantity : number;
truckMenu? : TruckMenu;
title?: string;
}
下面的方法要求一个 OrderDetails 数组作为参数。
public generatePDF(truck: Truck, orderItems: OrderDetails[]) {
let rows: string[] = ['Price', 'Quantity'];
orderItems.forEach((item) => {
var lign = [item.price, item.quantity];
rows.push(<string><unknown>lign);
})
let docDefinition = {
content: [
{
text: truck.name,
fontSize: 20,
alignment: 'center',
color: '#FF4F02',
margin: [0, 20],
},
{
text: 'Facture',
fontSize: 14,
bold: true,
alignment: 'Left',
decoration: 'underline',
color: '#000',
margin: [0, 20]
},
{
table: {
widths: ['*', 70, 50],
body: rows
}
},
{
text: 'Total : ',
fontSize: 14,
alignment: 'right',
margin: [140,20]
},
{
text: 'Thanks',
fontSize: 12,
margin: [0,20]
}
],
}
pdfMake.createPdf(docDefinition).open();
}
如您所见,我使用 forEach 循环进入数组并显示数据。
我的问题是收到一条错误消息,但我不明白为什么。
TypeError: Cannot assign to read only property '0' of string 'Price'
我发现了相同的错误消息 但这并没有解决我的问题。
怎么了?
我终于找到了解决方案。
我通过 any[] 更改行类型并推送如下元素:
...
var rows: any[] = [];
rows.push(['Plats', 'Prix unitaire', 'Quantité']);
orderItems.forEach((item) => {
rows.push([item.title, item.price, item.quantity]);
})
...
我正在尝试使用带有 Angular 的 pdfMake 创建 PDF。
我尝试用数组中的数据填充 Html table。这是一个对象数组。
export interface OrderDetails {
orderId? : number;
truckMenuId: number;
price? : number;
quantity : number;
truckMenu? : TruckMenu;
title?: string;
}
下面的方法要求一个 OrderDetails 数组作为参数。
public generatePDF(truck: Truck, orderItems: OrderDetails[]) {
let rows: string[] = ['Price', 'Quantity'];
orderItems.forEach((item) => {
var lign = [item.price, item.quantity];
rows.push(<string><unknown>lign);
})
let docDefinition = {
content: [
{
text: truck.name,
fontSize: 20,
alignment: 'center',
color: '#FF4F02',
margin: [0, 20],
},
{
text: 'Facture',
fontSize: 14,
bold: true,
alignment: 'Left',
decoration: 'underline',
color: '#000',
margin: [0, 20]
},
{
table: {
widths: ['*', 70, 50],
body: rows
}
},
{
text: 'Total : ',
fontSize: 14,
alignment: 'right',
margin: [140,20]
},
{
text: 'Thanks',
fontSize: 12,
margin: [0,20]
}
],
}
pdfMake.createPdf(docDefinition).open();
}
如您所见,我使用 forEach 循环进入数组并显示数据。
我的问题是收到一条错误消息,但我不明白为什么。
TypeError: Cannot assign to read only property '0' of string 'Price'
我发现了相同的错误消息
怎么了?
我终于找到了解决方案。
我通过 any[] 更改行类型并推送如下元素:
...
var rows: any[] = [];
rows.push(['Plats', 'Prix unitaire', 'Quantité']);
orderItems.forEach((item) => {
rows.push([item.title, item.price, item.quantity]);
})
...