En mi página, tengo 4 pasos usando *ngIf para cambiar entre cada div , al igual que
<div *ngIf="step===1"></div> <div *ngIf="step===2"></div> <div *ngIf="step===3"></div> <div *ngIf="step===4"></div> Y tengo un elemento de canvas en el paso 2 para representar usando los datos del paso 1. Mi problema fue que, cuando el usuario hace clic en el botón del siguiente paso , cambio el step = 2 y necesito representar el canvas . Pero como sabemos, el elemento de canvas no existirá hasta que la interfaz de usuario sea angular.
Entonces, ¿hay alguna manera de obtener el elemento del canvas después de la representación angular?
Aunque sé que [hidden] en lugar de *ngIf podría hacer esto, pero ¿hay alguna forma de *ngIf ? setTimeout no estaba en mi preocupación.
No estoy 100% seguro de que esto funcione, pero vale la pena intentarlo:
<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); }