这是一个与Angular无关的应用程序。
project.ts
export class Project {
private ctx: CanvasRenderingContext2D;
constructor(private canvas: HTMLCanvasElement){
this.ctx = canvas.getContext('2d');
requestAnimationFrame(this.render);
}
private render = (): void => {
requestAnimationFrame(this.render);
}
}
肯定是相当无聊,但它是面包和黄油动画。就我而言,我在使用canvasContext.stroke()
的画布上进行渲染时计算生成线条,但这无关紧要。
我还有另一个Angular组件将运行上面的应用程序。没有必要使用Angular Components的所有样板代码来讨论这个问题,但最后,我有一个画布,在这里,我试图在Angular Zone之外运行整个项目。
ngAfterViewInit(){
this.zone.runOutsideAngular(() => {
this.project = new Project(this.canvas);
});
}
此时,我希望该项目的Project
,特别是requestAnimationFrame
与Angular Zone无关。
当我查看开发工具时。我明白了。
这里到底发生了什么?
我正在寻找澄清我误解开发工具,或者我想要做的事情是不可能的(尚未)。
感谢阅读。