Problema : avevamo bisogno di condividere un servizio linguistico singleton su tutti i moduli caricati lentamente. Per un anno ho visto il metodo forRoot() e ho semplicemente ignorato il suo potere.
Spiegazione : il forRoot()metodo restituisce un NgModulee le relative dipendenze del provider.
In questo esempio, stiamo condividendo un servizio per tenere il passo con un controvalore. Ogni volta che un componente incrementa il valore memorizzato nel servizio contatore, desidero condividerlo con tutti i componenti.
Il problema è quando si tenta di introdurre moduli caricati pigramente. Si noti come il componente caricato lazy non condivide lo stesso valore del contatore. Quando si utilizzano solo componenti caricati con entusiasmo, l'esempio seguente funzionerà se si utilizza un servizio condiviso, ma si noti come si comporta il componente caricato con entusiasmo. Il componente pigro ottiene la propria istanza del servizio.
import { NgModule } from '@angular/core';
import { CounterService } from './counter.service';
@NgModule({
providers: [CounterService],
})
export class SharedModule {}
Soluzione : chiamare forRoot() in AppModule e restituire un ModuleWithProviders in sharedModule.
modulo.condiviso.ts
import { NgModule,ModuleWithProviders } from '@angular/core';
import { CounterService } from './counter.service';
@NgModule({
})
export class SharedModule {
static forRoot(): ModuleWithProviders {
return {
ngModule: SharedModule,
providers: [ CounterService ]
}
}
}
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { SharedModule } from './shared/shared.module';
import { AppComponent } from './app.component';
import { EagerComponent } from './eager.component';
import { routing } from './app.routing';
@NgModule({
imports: [
BrowserModule,
SharedModule.forRoot(),
routing
],
declarations: [
AppComponent,
EagerComponent
],
bootstrap: [AppComponent]
})
export class AppModule {}
Ora il servizio contatore è condiviso tra moduli caricati con entusiasmo e moduli caricati pigramente.
Altre letture consigliate:http://angularfirst.com/the-ngmodule-forroot-convention/
Validatori asincroni angolari
Il test è una parte essenziale dello sviluppo del software. Assicura che il codice sia affidabile, funzioni come previsto e riduce la probabilità di errori.
Sono assolutamente convinto di tutte le nuove funzionalità di Angular v16, a partire dai segnali e, beh, da tutto il resto. E non ho resistito all'impulso di aggiornare una delle app dell'azienda solo per vedere quanto potrebbe essere difficile.
La scorsa settimana ho notato un comunicato stampa, inviato tramite PressGazette (un sito Web di notizie sui media britannici). L'articolo annunciava che Acast, la società di hosting e pubblicità di podcast di Scandi, avrebbe guidato un consorzio di editori "probabilmente i più influenti" nel podcasting.
È una brillante mattina d'oro sulle dolci colline dell'ovest, mentre i primi raggi di sole illuminano l'erba ghiacciata sulle pianure. Una mandria di placidi bovini Angus, nerissimi e massicci, si staglia contro l'alba mentre percorrono un sentiero battuto verso un luogo che tutti conoscono bene; il bancone della colazione.
[Avviso di attivazione: questo saggio include schermate di persone che elogiano l'assassino di Jordan Neely.] I funzionari delle forze dell'ordine hanno finalmente - e forse con riluttanza - accusato Daniel Penny, l'uomo che ha soffocato Jordan Neely fino alla sua morte, per quell'omicidio.
Qualsiasi mente razionale sa che i circoli politici e mediatici sono dominati dalla sinistra, anche dall'estrema sinistra, uno stato di cose che crea uno squilibrio nel discorso politico. Nel campo della religione, questo squilibrio è chiaramente visibile: giornali e reti di sinistra non si affrettano a difendere la fede cristiana.