在较新的Angular版本中替代forwardRef?

时间:2017-06-20 10:59:23

标签: angular angular2-components

我试图将旧项目更新到最新版本的Angular,我发现这一行

constructor(@Inject(forwardRef(() => MapComponent)) private map: MapComponent) {
    }

导致应用停留在Loading...

TSLint还给了我以下信息:

  

避免在类中使用forwardRef()(no-forward-ref)。

如何重写此构造函数?

1 个答案:

答案 0 :(得分:3)

听起来你的注射设置中存在循环依赖性。 forwardRef可以解决部分类型的问题,因为类不会被提升,这可能会导致某些类型的实例解析错误。您收到tslint错误,因为样式指南建议您重新构建应用程序,以避免依赖于forwardRef而不依赖forwardRef

如果有人在您的代码中添加了{{1}},那么可能是有原因的 - 因此删除它可能会给您带来不同的错误。 我会尝试在代码中提升MapComponent然后删除forwardRef声明 - 因为我怀疑其他问题是在这个实例中停滞的引导程序的根目录