【问题标题】:Angular 2 child component refers to parent componentAngular 2子组件是指父组件
【发布时间】:2015-09-21 09:38:48
【问题描述】:

我有一个包含三个组件的应用程序。应用程序,EditView,对话框。

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

Dialog组件包含Application组件。当我把它放在声明路径中的对话框组件中时:

directives:[Application]

我收到此错误:

组件“对话框”视图上的意外指令值“未定义”

是否有可能有这样的结构,其中子组件可以在某些条件下包含来自上层的组件?

如果我从 Dialog 中删除 Application 组件或将其替换为其他组件,它可以正常工作。

兹拉亚

【问题讨论】:

标签: angular


【解决方案1】:

将它放在指令列表中是行不通的,但您仍然可以通过将其注入子指令的构造函数来访问父组件:

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

}

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

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

}

【讨论】:

  • Justo 澄清一下。我想在 Dialog 组件中有新的 Application 实例。应用程序 -> EditView -> 对话框 -> 应用程序(这是新实例)。
  • 使用 forwardRef 我管理的对话框组件可以在指令中看到应用程序组件,我在调试模式下检查了它。现在,我收到此错误:应用程序中的无条件组件循环。见groups.google.com/forum/#!topic/angular/tDU5sw1vBwc
【解决方案2】:

我已经使用 DynamicComponentLoader 解决了问题。

https://groups.google.com/forum/#!topic/angular/tDU5sw1vBwc

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-15
    • 2016-12-19
    • 1970-01-01
    • 1970-01-01
    • 2016-12-15
    • 1970-01-01
    • 2017-11-20
    相关资源
    最近更新 更多