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
Recuperare le subissue e il loro stato di completamento in GitHub
Configurare e gestire sidecar container in Azure App Service
Integrare un servizio esterno con .NET Aspire
Arricchire l'interfaccia di .NET Aspire
Integrazione di Copilot in .NET Aspire
Scrivere selettori CSS più semplici ed efficienti con :is()
Importare repository da Bitbucket a GitHub Enterprise Cloud
Centralizzare gli endpoint AI Foundry con Azure API Management
Combinare Container Queries e Media Queries
Definire il metodo di rilascio in .NET Aspire
Implementare il throttle in JavaScript
Rendere le variabili read-only in una pipeline di Azure DevOps


