angular - Bruk verdi fra ekstern JSON-fil når du definerer NgModule
For øyeblikket bruker jeg en ganske vanlig løsning for å laste inn innholdet i en JSON-fil i Angular 5-applikasjonen min som jeg kan injisere i komponentene mine. Dette fungerer som beskrevet her under seksjonen Kjøringstid-konfigurasjon.
Jeg bruker en npm-pakke som må initialiseres i filen min app.module.ts
@NgModule({
declarations: [
AppComponent
],
imports: [
/* .... */
[MsalModule.forRoot({
clientID: "...",
authority: "...",
redirectUri: <I need the value here from the JSON file>
})]
],
providers: [
ConfigService,
{
provide: APP_INITIALIZER,
useFactory: (config: ConfigService) => () => config.load(),
deps: [ConfigService],
multi: true
}
]
bootstrap: [AppComponent]
})
export class AppModule { }
Jeg bruker Angular-CLI, og jeg vet at jeg kunne bruke forskjellige miljøfiler, men innholdet i JSON-filen kan endre seg etter at applikasjonen er bygget, og jeg kan ikke stole på det.
Finnes det en måte å bruke en verdi fra JSON-filen umiddelbart i NgModule-deklarasjonen, der jeg trenger den?
Svar #1
Et godt alternativ kan finnes her i dette StackOverflow-spørsmålet
Denne måten å laste JSON-filen på gjør at den kan lastes som et JS-objekt, og vi kan få tilgang til den før vi erklærer NgModule.
Svar #2
På denne måten kan JSON-filen lastes, og vi kan få tilgang til den før vi erklærer NgModule.
Json-fil:
{
"apiUrl":"http://localhost:52361/"
}
Modulfil:
import Configuration from '../assets/config.json';
GridModule.forRoot(Configuration.apiUrl)
