I don't know how to use forRoot
.
In my app I'm configuring databaseService
in ngOnInit
of AppComponent
:
this.databaseService.addDatabaseData(databaseData);
I guess it will be better to use forRoot
for that but I have no idea how to do it. How to use config data in forRoot
?
app.module:
@NgModule({
imports: [
DatabaseModule.forRoot(databaseData),
]
});
database.module
export class DatabaseModule {
static forRoot(databaseData: any): ModuleWithProviders {
/**
* How to use databaseData?
* this.databaseService.addDatabaseData(databaseData);
*/
return {
ngModule: DatabaseModule,
providers: [
DatabaseService
]
};
}
}
Use a factory
providers: [
{
provide: DatabaseService,
useFactory: () => {
const service = new DatabaseService();
service.addDatabaseData(databaseData)
return service;
}
}
]
If the DatabaseService
requires injected dependencies, then you could do
providers: [
Any,
Dependencies,
{
provide: DatabaseService,
deps: [ Any, Dependencies ],
useFactory: (any: Any, dependencies: Dependencies) => {
const service = new DatabaseService(any, dependencies);
service.addDatabaseData(databaseData)
return service;
}
}
]
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.