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
Loggare le query più lente con Entity Framework
Utilizzare WhenEach per processare i risultati di una lista di task
Utilizzare gRPC su App Service di Azure
Configurare il nome della run di un workflow di GitHub in base al contesto di esecuzione
Migliorare l'organizzazione delle risorse con Azure Policy
Creare agenti facilmente con Azure AI Agent Service
Ricevere notifiche sui test con Azure Load Testing
Referenziare un @layer più alto in CSS
Utilizzare i variable font nel CSS
Applicare un filtro per recuperare alcune issue di GitHub
Recuperare App Service cancellati su Azure
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL