【问题标题】:Dependency inject ancestor component of same type?依赖注入相同类型的祖先组件?
【发布时间】:2019-03-12 19:41:47
【问题描述】:

Angular 的依赖注入允许您注入任何祖先组件,如下所示:

@Component({ ... })
export class MyComponent {
    constructor(_parent: AppComponent) {}
}

但就我而言,我想注入一个祖先组件,它是同一组件类的另一个实例,如下所示:

@Component({ ... })
export class MyComponent {
    constructor(_parent: MyComponent) {}
                         ^^^^^^^^^^^
}

这会产生一个循环依赖错误,大概是因为它引用了同一个实例。

就我而言,我无法通过@Input() 注入其他组件,因为它不会是直接父组件,而是完全动态/未知的祖父/曾祖父组件。

【问题讨论】:

    标签: angular typescript


    【解决方案1】:

    使用@SkipSelf()decorator。

    export class HelloComponent  {
      constructor(@SkipSelf() @Optional() private parent: HelloComponent) {
      }
    }
    

    Demo

    【讨论】:

      猜你喜欢
      • 2014-01-02
      • 2018-06-29
      • 2016-03-23
      • 1970-01-01
      • 2018-03-10
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      相关资源
      最近更新 更多