如何在角度2中使用Factory Provider

前端之家收集整理的这篇文章主要介绍了如何在角度2中使用Factory Provider前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要在角度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上注入了同样的问题,经过长时间的搜索我找到了下面的解决方案.可能这对您的方案有帮助.
@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);
};
原文链接:https://www.f2er.com/angularjs/141657.html

猜你在找的Angularjs相关文章