3

Angular 2 プロジェクトでデータ入力から PDF を作成しようとしています。これを行うために、私はpdfMakeを統合しました。静的 PDF の作成は問題なく機能しますが、いくつかの値を印刷しようとすると、うまくいきません。

このプランカーをご覧ください: https://plnkr.co/edit/7tPFTAjKWwaRp1IbT0Tg?p=preview

オブジェクトを buildPdf 関数に入れると、コンソールにログが記録されます。しかし、オブジェクト値の 1 つを 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();

何のために必要なのかわかりません。渡された値にアクセスするためスローされますが、ここでは何も渡されません。

動作中の Plunker については、 https: //plnkr.co/edit/NPLHxVgC5LthA4g2WpUx?p=previewを参照してください。

于 2016-03-01T10:30:15.743 に答える