【发布时间】:2018-03-10 08:33:37
【问题描述】:
我的 Angular 2 项目中有以下模块结构:
app
|-module1
|-module2
|-component2-1
|-component2-2
|-factories
factory 模块有几个提供者,定义如下:
@NgModule({
providers: [
{ provide: Class1,
useFactory: Class1Factory,
deps: [SameModuleDependency],
multi: true
},
{ provide: Class2,
useFactory: Class2Factory
}
]
})
export function Class1Factory(): Class1 { ... }
export function Class2Factory(): Class2 { ... }
假设我想让这些工厂提供程序可用于模块 2 中的组件 2-1 和 2-2。我应该如何在模块 2 的模块定义中导入它们?我还没有找到这些例子。
我猜如果我单独导出每个提供程序,执行以下操作:
Class1Provider: Provider = {provide: Class1, useFactory: ... }
Class2Provider: Provider = {provide: Class2, useFactory: ....}
然后在 module2 定义中我可以声明它们:
import { Class1Provider, Class2Provider } ....
@NgModule({
providers: [Class1Provider, Class2Provider]
})
但是,我还没有找到一种方法来完成这项工作(导出实例,而不是类定义)
此外,我希望有几个提供程序,但并非所有同级组件都使用它们,所以我不希望单独导出/导入每个。
额外问题:如果我想让它在 module1 的组件中可用怎么办?
【问题讨论】:
-
是否有模块参与惰性路由?
-
@AngularInDepth.com 目前,不是。我预计不会很快如此。
-
工厂模块有几个模块定义如下 - 这里
modules是什么意思? -
@AngularInDepth.com 一个错误。我纠正了它。对不起
-
这里是
I have the following module structuremodule你的意思是angular modules?
标签: angular dependency-injection