在Angular 2 / TypeScript中使用pdfMake和数据输入

时间:2016-03-01 10:19:52

标签: javascript typescript angular pdfmake

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

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

我设法将一个对象放入我的buildPdf函数中,然后它被提交到控制台。但是当我尝试将我的一个对象值添加到pdfMake docdefinition时,我收到错误消息:

  

ORIGINAL EXCEPTION:TypeError:无法读取未定义的属性“firstName”

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

我试图通过在typescript中重写我的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;
}

但结果保持不变。

为什么我能控制对象但不能访问其属性?我错过了什么?

1 个答案:

答案 0 :(得分:4)

似乎是由这一行引起的

buildPdf: any = new buildPdf();

我不知道你需要它。它抛出因为它访问传递的值但是没有传递。

有关正在使用的Plunker,请参阅https://plnkr.co/edit/NPLHxVgC5LthA4g2WpUx?p=preview