解决Angular / Typescript

时间:2019-03-15 15:23:13

标签: angular typescript

一段时间以来,我一直在努力从循环依赖中清理代码库,但是在某些情况下,我无法找到一种方法来绕过循环依赖,而无需更改当前构建组件的方式。

示例:

// parent.component.ts
import { ChildComponent } from './child.component';
...
@ContentChildren() items: ChildComponent

#################################################################

// child.component.ts
import { ParentComponent} from './parent.component';
...
constructor(@Host() private parentComponent: ParentComponent) { }

在上述情况下,我是否必须重构代码以改为使用服务,还是有其他方法摆脱循环依赖?

2 个答案:

答案 0 :(得分:0)

对于TS类,您可以执行以下操作:

export class Child{
    _parent;
    constructor(parent)
    {
    this._parent = parent
    }

    get parent(): ParentClass { return this._parent}
}

答案 1 :(得分:-2)

通常,您可以通过注入Injector并在ngOnInit中或在您确实需要使用它的任何地方,通过注入(并向其请求依赖来解决循环依赖。