2015-09-21 245 views
6

我有一个包含三个组件的应用程序。应用程序,EditView,对话框。Angular 2子组件是指父组件

应用程序组件包含EditView组件,它可以包含许多其他EditView组件和一个Dialog组件(如果Dialog组件在页面上可见)。

对话框组件包含应用程序组件。当我把在对话框成分声明路径:

directives:[Application] 

我'收到此错误:对组件“对话框”

查看

意外的指导价值“未定义”是否有可能在某些情况下根本就没有这样的结构,其中子组件可以包含来自上层的组件?

如果我从对话框中删除应用程序组件或将其替换为其他组件,它可以正常工作。

Zlaja

+0

这是从谷歌角度小组讨论:https://groups.google.com/forum/#!topic/angular/tDU5sw1vBwc – zlaja

回答

3

将它放到指令列表将无法正常工作,但你仍然可以访问到母部件有它的子指令的构造函数注入:

constructor(@Host(Application) application: Application) { 

} 

而且父组件可以使用@Query获得子组件的实时列表:

constructor(@Query(EditView) editViews: QueryList<EditView>){ 

} 
+0

胡斯托到clerify。我想在Dialog组件中有新的Application实例。应用程序 - > EditView - >对话框 - >应用程序(这是新的实例)。 – zlaja

+0

With forwardRef我管理的对话框组件可以在指令中看到应用程序组件,我在调试模式下检查它。现在,我得到这个错误:应用程序中的无条件组件循环。请参阅https://groups.google.com/forum/#!topic/angular/tDU5sw1vBwc。 – zlaja

相关问题