gpt4 book ai didi

Angular 9 无法实例化循环依赖!应用程序引用

转载 作者:行者123 更新时间:2023-12-04 04:12:37 25 4
gpt4 key购买 nike

从 8 更新到 Angular 9 导致循环依赖错误

我刚刚升级到 Angular 9 并修复了所有编译错误。现在我遇到了一个与我无法追踪的循环依赖相关的错误。

Error: Cannot instantiate cyclic dependency! ApplicationRef
at throwCyclicDependencyError (core.js:8072)
at R3Injector.hydrate (core.js:17049)
at R3Injector.get (core.js:16803)
at injectInjectorOnly (core.js:940)
at ɵɵinject (core.js:950)
at Object.NgbModalStack_Factory [as factory] (ng-bootstrap.js:6262)
at R3Injector.hydrate (core.js:17053)
at R3Injector.get (core.js:16803)
at injectInjectorOnly (core.js:940)
at Module.ɵɵinject (core.js:950)

如果我查看 ng-bootstrap.js:6262 代码块,它看起来像是指的是 NgbModal 组件
    NgbModalStack.ɵprov = ɵɵdefineInjectable({ factory: function NgbModalStack_Factory() { return new NgbModalStack(ɵɵinject(ApplicationRef), ɵɵinject(INJECTOR), ɵɵinject(DOCUMENT), ɵɵinject(ScrollBar), ɵɵinject(RendererFactory2), ɵɵinject(NgZone)); }, token: NgbModalStack, providedIn: "root" });
NgbModalStack = __decorate([ __param(2, Inject(DOCUMENT))
], NgbModalStack);

这可能与特定错误没有直接关系,但我看不到任何可能导致这种情况的东西。
任何人都想过可能导致这种情况的原因,或者它可能是 Angular Bootstrap 库中的错误?

最佳答案

我找到了这个解决方案:
不要直接在构造函数中注入(inject) NgModal,通过 Injector:

private modalService: NgbModal
constructor(private injector: Injector) {}

showModal() {
// Inject the dependency of NgbModal
this.modalService = this.injector.get(NgbModal);
this.modalService.open();
}

关于Angular 9 无法实例化循环依赖!应用程序引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61467331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com