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.
