在我的页面中,我使用*ngIf
在每个div
之间切换有4个步骤,就像
<div *ngIf="step===1"></div>
<div *ngIf="step===2"></div>
<div *ngIf="step===3"></div>
<div *ngIf="step===4"></div>
我在第2步中使用canvas
元素来渲染第1步中的数据。
我的问题是,当用户点击下一步按钮时,我会更改step = 2
,我需要渲染canvas
。但正如我们所知,canvas
元素在角度渲染UI之前不会存在。
有没有办法在角度渲染后获得canvas
元素?
虽然我知道[hidden]
代替*ngIf
可以做到这一点,但是有*ngIf
方法吗? setTimeout
并不是我关注的问题。
答案 0 :(得分:0)
不是100%确定这是有效的,但值得一试:
<div *ngIf="...">
<canvas #canvas>
constructor(private cdRef:ChangeDetectorRef) {}
@ViewChild('cd') canvas:ElementRef;
step = 1;
nextStep() {
this.step++;
this.cdRef.detectChanges();
console.log(this.canvas.nativeElement);
}