我需要在角度2应用程序中将服务注入另一个服务.在阅读了我推断的文档后,最好的方法是使用
Factory Provider.但是出现了两个问题:
1)文档建议创建一个带有两个“代码段”的HeroServiceProvider类:
let heroServiceFactory = (logger: Logger,userService: UserService) => { return new HeroService(logger,userService.user.isAuthorized); }; export let heroServiceProvider = { provide: HeroService,useFactory: heroServiceFactory,deps: [Logger,UserService] };
2)如何/可以使用这家工厂?我明白了,它应该导入为:
import { heroServiceProvider } from './hero.service.provider'; @Component({ selector: 'my-selector',template: ` `,providers: [heroServiceProvider] })
那么如何检索和访问所需的参数化服务呢?
我在app_initalizer上注入了同样的问题,经过长时间的搜索我找到了下面的解决方案.可能这对您的方案有帮助.
原文链接:https://www.f2er.com/angularjs/141657.html@NgModule({ imports: [ BrowserModule],... providers: [ { provide: HeroService,UserService],multi: true } ] }) export class AppModule {} export function heroServiceFactory = (logger: Logger,userService: UserService) => { return new HeroService(logger,userService.user.isAuthorized); };