Vyhledávání na webu

javascript - Použití pdfMake s vstupními daty v Angular 2/TypeScript


Snažím se vytvořit PDF z dat zadaných v projektu Angular 2. K tomu jsem integroval pdfMake. Vytvoření statického PDF funguje bez problémů, ale jakmile se pokusím vypsat některé hodnoty, něco se pokazí.

Prosím, podívejte se na tento plunker: https://plnkr.co/edit/7tPFTAjKWwaRp1IbT0Tg?p=preview

Podaří se mi vložit objekt do mé funkce buildPdf a zobrazí se v konzoli. Ale když se pokusím přidat jednu z hodnot mého objektu do docdefinition pdfMake, dostanu chybovou zprávu:

ORIGINÁLNÍ VÝJIMKA: TypeError: Nelze přečíst vlastnost 'firstName' z undefined

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

Snažil jsem se vyloučit problém s typováním tím, že jsem přepsal svůj buildPdf.js do TypeScriptu, který vypadal nějak takto:

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;
}

Výsledek však zůstal stejný.

Proč mohu použít console.log na objekt, ale nemohu přistupovat k jeho vlastnostem? Co jsem přehlédl?

Odpověď č. 1

Zdá se, že to způsobuje tento řádek

buildPdf: any = new buildPdf();

Nevidím, k čemu to potřebuješ. Háže výjimku, protože přistupuje k předané hodnotě, ale zde žádná není předána.

Viz https://plnkr.co/edit/NPLHxVgC5LthA4g2WpUx?p=preview pro fungující Plunker.

Související články