angular - PrimeNG-menyalternativets kommandobindning till basklassfunktion


Jag försöker binda en basklassfunktion till mina Angular 2 PrimeNG-menyalternativ.

HTML

<p-menu #menu popup="popup" [model]="exportItems"></p-menu>
<button type="button" class="fa fa-download" title="Export As" (click)="menu.toggle($event)"></button>

Typescript

exportItems: MenuItem[];

//Inside NgOnInit
this.exportItems = [
{ label: 'SVG', command: super.ExportSVG },
{ label: 'PNG', command: super.ExportPNG }];

//Error here 
//Cannot read property 'canvasID' of undefined
ExportSvg(): void
{
    var canvas = document.getElementById(this.canvasID) as HTMLCanvasElement;
    .....

}

Jag tror att basklassens funktion inte kan lösas när man binder till ett kommando. Några ledtrådar om hur man kan fixa detta?

Svar #1

Tja, jag löste detta genom att följa kommandobindningen.

this.exportItems = [
{ label: 'SVG', command: (onclick)=> {super.ExportSVG()} },
{ label: 'PNG', command: (onclick)=> {super.ExportPNG()} }];

Det verkar som att när man binder onClick-händelsen på menyposten fungerar det bra.