通过字符串注入和解析 angular2 提供程序
Injecting and resolving angular2 providers by string
我正在尝试将基于 运行 时间数据的提供程序注入到我的 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());
这会尝试创建提供者,但由于它的子依赖性,它会引发错误。
我收到的错误是:
Error: No provider for HttpHandler! (GoogleRepository -> HttpHandler)
我将如何继续将子提供程序也注入已解析的提供程序?
我想你想要的是构建一个在解析时还包括 Angular2 提供程序的注入器
constructor(private injector:Injector) {}
...
someMethod() {
let resolvedProviders = ReflectiveInjector.resolve([Car, Engine]);
let child = ReflectiveInjector.fromResolvedProviders(
resolvedProviders,
this.injector
);
}
另见
我正在尝试将基于 运行 时间数据的提供程序注入到我的 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());
这会尝试创建提供者,但由于它的子依赖性,它会引发错误。
我收到的错误是:
Error: No provider for HttpHandler! (GoogleRepository -> HttpHandler)
我将如何继续将子提供程序也注入已解析的提供程序?
我想你想要的是构建一个在解析时还包括 Angular2 提供程序的注入器
constructor(private injector:Injector) {}
...
someMethod() {
let resolvedProviders = ReflectiveInjector.resolve([Car, Engine]);
let child = ReflectiveInjector.fromResolvedProviders(
resolvedProviders,
this.injector
);
}
另见