Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过字符串注入和解析angular2提供程序_Javascript_Angular_Typescript_Angular2 Services - Fatal编程技术网

Javascript 通过字符串注入和解析angular2提供程序

Javascript 通过字符串注入和解析angular2提供程序,javascript,angular,typescript,angular2-services,Javascript,Angular,Typescript,Angular2 Services,我正在尝试将基于运行时数据的提供程序注入我的angular2组件 到目前为止,我有: let type: PropertyDescriptor = Object.getOwnPropertyDescriptor(providers, provider.name); if (!type) return; let injector: Injector = ReflectiveInjector.resolveAndCreate([(<any>type).get()]);

我正在尝试将基于运行时数据的提供程序注入我的angular2组件

到目前为止,我有:

  let type: PropertyDescriptor = Object.getOwnPropertyDescriptor(providers, provider.name);
  if (!type) return;

  let injector: Injector = ReflectiveInjector.resolveAndCreate([(<any>type).get()]);
  let resolvedProvider: IAnalyticRepository = injector.get((<any>type).get());
let类型:PropertyDescriptor=Object.getOwnPropertyDescriptor(providers,provider.name);
如果(!type)返回;
让injector:injector=ReflectiveInjector.resolveAndCreate([(type).get()]);
让resolvedProvider:IAnalyticResposition=injector.get((type.get());
这会尝试创建提供程序,但由于其子依赖关系,它会抛出一个错误

我收到的错误是:

错误:HttpHandler没有提供程序!(GoogleRepository->HttpHandler)


如何将子提供程序注入已解析的提供程序?

我想您想要的是构建一个在解析时也包含Angular2提供程序的注入程序

constructor(private injector:Injector) {}

...

someMethod() {    
  let resolvedProviders = ReflectiveInjector.resolve([Car, Engine]);
  let child = ReflectiveInjector.fromResolvedProviders(
      resolvedProviders, 
      this.injector
  );
}

另请参见什么错误?这与“字符串提供者”有什么关系?我想说的是,我是在动态注入。我将编辑以添加错误。