Jeśli nie chcesz, aby zdenerwować kątowych bogów, użyj @ViewChild
w HTML dodać odwołanie szablonu.
<canvas #myCanvas></canvas>
W swojej klasie wykonać następujące czynności.
import { ViewChild, ElementRef } from '@angular/core';
...
// Somewhere above your class constructor
@ViewChild('myCanvas') myCanvas: ElementRef;
public context: CanvasRenderingContext2D;
// Somewhere under the class constructor we want to wait for our view
// to initialize
ngAfterViewInit(): void {
this.context = (<HTMLCanvasElement>this.myCanvas.nativeElement).getContext('2d');
}
Staraj się trzymać z dala od używania dokumentu jak można, jak to może cię ugryźć na dłuższą metę. Również użycie @ViewChild
ma przewagę nad przeszukiwanie DOM, po skompilowaniu aplikacji. Angular już wie z wyprzedzeniem, który element musi wykonać modyfikacje, zamiast szukać go w DOM.
Aby uzyskać pełną przykład sprawdzić ten demo
zobaczyć http://embed.plnkr.co/LFhOuepJrnPVlwUXmkUt/ –