标签: angular-lazyloading

带有 ui 路由器的 Angular 9 混合导致在设置之前尝试获取 AngularJS 注入器。如何调试/修复?

[编辑] 我用这个错误创建了一个演示存储库:https : //github.com/SamanthaAdrichem/hybrid-lazy-load-angularjs-injector-error

我们已按照说明操作,并且在普通混合动力车上一切正常,但是添加延迟加载失败并出现上述奇怪错误,并且始终按照文档所说的方式实现 ui 路由器(如下面的代码所示)。

加载应用程序时一切正常,但是当点击延迟加载的路线时,我们收到错误

Transition Rejection($id: 0 type: 6, message: The transition errored, detail: Error: 在AngularJS注入器被设置之前试图获取它。)

我已经尝试过这里列出的解决方案

https://github.com/ui-router/angular-hybrid/issues/93

https://github.com/ui-router/angular-hybrid/issues/150

https://github.com/ui-router/angular-hybrid/issues/395

https://github.com/ui-router/sample-app-angular-hybrid/issues/10

但这些都没有解决它。我们不使用 ng serve 因为它会因随机内存问题而崩溃(可能也是由于混合),我们需要代理到登录页面,但登录页面和我们的项目将在同一端口上运行,这不是可能。所以这需要在后端进行一些重构。

它有时会根据我要去的页面加载一个新的块文件。但大多数情况下我都会遇到这个错误。

有趣的是,在我正在测试的页面中,我们没有使用任何混合代码。基本上我们不再升级任何代码,我们只是降级一些观察者以打开旧页面的模式。

这些是我们正在运行的版本

"@angular/cli": "9.1.7",
"@angular/animations": "9.0.7",
"@angular/common": "9.0.7",
"@angular/compiler": "9.0.7",
"@angular/core": "9.0.7",
"@angular/forms": "9.0.7",
"@angular/localize": "9.0.7",
"@angular/platform-browser": "9.0.7",
"@angular/platform-browser-dynamic": "9.0.7",
"@angular/router": "9.0.7",
"@angular/upgrade": "9.0.7",
"@uirouter/angular": "6.0.1",
"@uirouter/angular-hybrid": "10.0.1",
"@uirouter/angularjs": "1.0.26",
"@uirouter/core": "6.0.5",
"@uirouter/rx": "0.6.5",
Run Code Online (Sandbox Code Playgroud)

在详细的错误和一些代码下面,不知道还有什么可以分享或我可以安全地分享什么。

关于如何调试的任何建议都会很可爱!

详细错误

stateService.ts?8765:537 Transition Rejection($id: 0 type: 6, message: The transition errored, detail: Error: …
Run Code Online (Sandbox Code Playgroud)

angular-ui-router angular angular-hybrid angular-lazyloading

5
推荐指数
1
解决办法
1794
查看次数