【发布时间】:2016-01-26 05:36:51
【问题描述】:
我一直在尝试使用 Angular2 中的动态组件加载器。可能与此相关的一个问题:https://github.com/angular/angular/issues/4330 似乎是,一旦使用 loadIntoLocation() 函数加载组件,注入器就无法找到父组件的注入器或注入其中的东西。正如那篇文章所建议的,您可以将从父级注入器 (Injector.resolve) 获得的已解析提供程序数组传递给 loadIntoLocation() 的最后一个参数。
这似乎最初可以工作,但我也发现动态加载的组件的任何 子 也有同样的问题。子节点的注入器不知道要查找提供者的注入树,因此子节点的构造函数中的标准注入就像
constructor( myComponent: MyComponent)
不起作用。子(动态加载的组件)不是动态加载的,而只是“通常”使用模板、选择器等实例化。我想知道:
- 这(仍然)是一个已知问题还是我误解了什么?
- 如果是已知问题,是否有任何子级解决方法?我尝试了上面的构造函数,还使用了@Host,还使用了forward ref + @host,但没有任何效果。是否有其他方法可以手动将绑定传递给未动态加载的组件?
- 还有其他可能的解决方法吗?
【问题讨论】:
标签: dependency-injection angular