我对angular2组件提供程序有些麻烦。我想提供一些在组件级别上定义的提供程序
@Component({
selector: "component",
template: 'hello',
providers: [SomeService]
})
如果直接将服务设置为提供者,这将起作用。在我的情况下,添加到提供者列表的提供者将从不同的模块提供。
我创建了一个静态类,所有模块都可以为此组件提供自己的组件提供程序,但AOT Build将在构建期间返回错误:
在静态解析符号值时遇到错误。调用功能' AppBridge',不支持功能调用。考虑使用对导出函数的引用替换函数或lambda,解析符号brdigeProvide。
我试过这个例子:
@Component({
selector: "component",
template: 'hello',
providers: [AppBridge.getProviders('A')]
})
AppBridge.getProviders将返回一个带有提供定义的数组,例如
[{ provide: AbstractMyService, useClass: MyService }, OtherService]
有没有办法在组件上提供服务?我需要这个,因为提供这个组件的模块不应该引用其他模块'在应用程序内部。
我很高兴你可以给我一个提示。也许这是不可能的Oo因为angular2 / x需要静态的一切。
我创建了一个例子: https://stackblitz.com/edit/angular-dynamic-provider
与@estus交谈后 这里有更多细节。我的问题的背景是,FESM将在运行时加载。此模块应为将在运行时调用的组件提供服务。该组件将创建n次,并且服务还应为每个组件创建n次。