Fino alla versione 7 di Angular, i decorator ViewChild e ContentChild impostano la variabile che decorano a partire dal metodo ngAfterViewInit della pipeline di esecuzione del component. Questo esempio mostra questo funzionamento.
<h1 #MyDiv>mydiv</h1>
@ViewChild('MyDiv') myDiv: ElementRef<HTMLDivElement>;
ngOnInit() {
console.log(this.myDiv); // ritorna undefined
}
ngAfterViewInit() {
console.log(this.myDiv); // ritorna div
}A partire da Angular 8, se il tag non è contenuto all'interno di un template con una direttiva strutturale come ngIf e ngFor, allora la variabile decorata è disponibile già nei metodi che vengono eseguiti prima di ngAfterViewInit come mostrato in questo esempio.
ngOnInit() {
console.log(this.myDiv); // ritorna div
}
ngAfterViewInit() {
console.log(this.myDiv); // ritorna div
}Se vogliamo mantenere il comportamento precedente ad Angular 8, dobbiamo inserire un secondo parametro nei decorator ViewChild e ContentChild. Questo parametro deve essere un oggetto con la proprietà static impostata a true.
@ViewChild('MyDiv', { static: true }) myDiv: ElementRef<HTMLDivElement>;Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Evitare memory leaks nelle closure JavaScript
Analizzare il contenuto di una issue con GitHub Models e AI
Utilizzare Containers in .NET Aspire
DevSecOps per .NET: dalla teoria alla pratica
Utilizzare @property per animare nativamente un oggetto HTML tramite CSS
Keynote .NET Conference Italia 2025
Configurare automaticamente un webhook in Azure DevOps
Ridurre il reflow ottimizzando il CSS
Fissare una versione dell'agent nelle pipeline di Azure DevOps
Ospitare n8n su Azure App Service
Ottimizzare la content-visibility in CSS specificando lo spazio da occupato dall'area non renderizzata
Utilizzare il Null conditional assignment di C# 14




