动态地“提供”服务

时间:2016-08-02 08:11:14

标签: typescript angular dependency-injection

在我的项目中,我有各种服务来实现“服务”界面,所以我知道每项服务都有findAll<T>findcreate,(CRUD)等。方法

现在我正在编写一个可以动态附加到其中一个服务的组件,它将调用findAll方法并从服务中检索所有实体。

我正在使用webpack动态地要求服务:

  ngOnInit() {
      // Load context for serice API directory:
      let req = require.context('../../../../api', true, /^\.\/.*\.ts$/);
      // Let's load the service (synchronously)
      let service: Service = req('./' + serviceName + 'ApiService.ts')

大!现在,service包含我的服务。现在我只需要provide它,因为这些服务并没有全部添加到引导程序中,而只是按需使用。

因此我的问题;如何从组件内动态“提供”服务? (在这之后,我将使用injector.get来检索服务实例。我想做相同的事情:

provide: service在我的组件中,但显然,因为我已经在ngOnInit(),所以为时已晚......

编辑;似乎来自:https://github.com/angular/angular/issues/5622没有干净的解决方案。我的立场有待纠正。

0 个答案:

没有答案