我正在尝试构建自己的Modal组件,我可以在整个Angular2应用程序中重用它。我正在考虑不同的方法,我想知道是否有可能创建@Component
也可以作为@Injectable
?我正在考虑这个,因为我想为Modal构建一个模板,并将其保存在一个地方。
由于
答案 0 :(得分:11)
默认情况下,某个组件可以注入@Component()
(或@Directive()
)包括@Injectable()
。
不要期望注入一个组件的特定实例。这适用于例如constructor(@Host() private parentComponent)
,其中DI查找仅限于父注入器直到主机元素的注入器。
通常对于您的用例DynamicComponentLoader
,它只接受组件的类型,而不是实例。依赖注入只会创建组件类的实例,但不会创建关联的视图。