rutas redireccionar hijas change angular typescript angular2-services angular2-aot

redireccionar - rutas angular 6



Pasa los datos de configuraciĆ³n usando forRoot (1)

export class SampleModule { static forRoot(config: CustomConfig): ModuleWithProviders { // User config get logged here console.log(config); return { ngModule: SampleModule, providers: [SampleService, {provide: ''config'', useValue: config}] }; } }

@Injectable() export class SampleService { foo: string; constructor(@Inject(''config'') private config:CustomConfig) {

Estoy tratando de pasar datos de configuración a una biblioteca personalizada en Angular.

En la aplicación de usuarios , pasarán algunos datos de configuración a mi biblioteca usando forRoot

// Import custom library import { SampleModule, SampleService } from ''custom-library''; ... // User provides their config const CustomConfig = { url: ''some_value'', key: ''some_value'', secret: ''some_value'', API: ''some_value'' version: ''some_value'' }; @NgModule({ declarations: [...], imports: [ // User config passed in here SampleModule.forRoot(CustomConfig), ... ], providers: [ SampleService ] }) export class AppModule {}

En mi biblioteca personalizada , específicamente el index.ts , puedo acceder a los datos de configuración:

import { NgModule, ModuleWithProviders } from ''@angular/core''; import { SampleService } from ''./src/sample.service''; ... @NgModule({ imports: [ CommonModule ], declarations: [...], exports: [...] }) export class SampleModule { static forRoot(config: CustomConfig): ModuleWithProviders { // User config get logged here console.log(config); return { ngModule: SampleModule, providers: [SampleService] }; } }

Mi pregunta es cómo puedo hacer que los datos de configuración estén disponibles en el servicio de SampleService la biblioteca personalizada SampleService

Actualmente, SampleService contiene lo siguiente:

@Injectable() export class SampleService { foo: any; constructor() { this.foo = ThirdParyAPI(/* I need the config object here */); } Fetch(itemType:string): Promise<any> { return this.foo.get(itemType); } }

He leído los documentos en Providers , sin embargo, el ejemplo de forRoot es bastante mínimo y no parece cubrir mi caso de uso.