我不知道如何使用forRoot
。
在我的应用中,我正在databaseService
ngOnInit
中配置AppComponent
:
this.databaseService.addDatabaseData(databaseData);
我想最好使用forRoot
,但我不知道该怎么做。
如何在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
]
};
}
}
答案 0 :(得分:1)
使用工厂
providers: [
{
provide: DatabaseService,
useFactory: () => {
const service = new DatabaseService();
service.addDatabaseData(databaseData)
return service;
}
}
]
如果DatabaseService
需要注入依赖项,那么您可以
providers: [
Any,
Dependencies,
{
provide: DatabaseService,
deps: [ Any, Dependencies ],
useFactory: (any: Any, dependencies: Dependencies) => {
const service = new DatabaseService(any, dependencies);
service.addDatabaseData(databaseData)
return service;
}
}
]