3

我正在尝试从 Angular 2 项目中的数据输入创建 PDF。为此,我集成了 pdfMake。创建静态 PDF 工作得很好,但是当我尝试打印一些值时,它就出错了。

请看看这个 plunker:https ://plnkr.co/edit/7tPFTAjKWwaRp1IbT0Tg?p=preview

我设法将一个对象放入我的 buildPdf 函数中,并将其记录到控制台。但是当我尝试将我的对象值之一添加到 pdfMake docdefinition 时,我收到了错误消息:

原始异常:TypeError:无法读取未定义的属性“firstName”

var docDefinition = {
    content: [{
        text: 'My name is: ' + pdfContent.firstName  + ' ' + pdfContent.lastName + '.'
    }]
}

我试图通过在打字稿中重写我的 buildPdf.js 来排除打字问题,看起来像这样:

var buildPdf: (value: {firstName: string, lastName: string}) => any =
function(value: {firstName: string, lastName: string}): any {
    let docDefinition:any = {
        content: [{
            text: 'This is a test.'
        }]
    }
    console.log(value);
    return docDefinition;
}

但是,结果保持不变。

为什么我能够 console.log 对象但不能访问其属性?我错过了什么?

4

1 回答 1

4

似乎是由这条线引起的

buildPdf: any = new buildPdf();

我看不出你需要它做什么。它抛出是因为它访问了传递的值,但这里没有传递。

请参阅https://plnkr.co/edit/NPLHxVgC5LthA4g2WpUx?p=preview了解工作中的 Plunker。

于 2016-03-01T10:30:15.743 回答