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.