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
Gestire errori funzionali tramite exception in ASP.NET Core Web API
Controllare gli accessi IP alle app con Azure Container Apps
Creazione di plugin per Tailwind CSS: espandere le Funzionalità del Framework
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
Sfruttare i KeyedService in un'applicazione Blazor in .NET 8
Usare lo spread operator con i collection initializer in C#
Disabilitare automaticamente un workflow di GitHub (parte 2)
Mascherare l'output di un valore all'interno dei log di un workflow di GitHub
Miglioramenti agli screen reader e al contrasto in Angular
Come EF 8 ha ottimizzato le query che usano il metodo Contains
Short-circuiting della Pipeline in ASP.NET Core
Utilizzare la libreria Benchmark.NET per misurare le performance
I più letti di oggi
- Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
- Utilizzare il trigger SQL con le Azure Function
- Disabilitare automaticamente un workflow di GitHub (parte 2)
- Ottimizzazione dei block template in Angular 17
- Paginare i risultati con QuickGrid in Blazor
- Ed infine anche il calendario :)
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!