错误:必须从注入上下文中调用inject()-将angular 8升级到9

时间:2020-04-22 05:45:18

标签: angular ivy

我在启用常春藤的情况下将我的角度应用程序从8升级到了9。现在应用程序正在正确构建,但是当我执行服务时,控制台出现错误-

Error: inject() must be called from an injection context
    at injectInjectorOnly (VM29 vendor.js:32922)
    at Module.ɵɵinject (VM29 vendor.js:32933)
    at Object.A11yModule_Factory [as factory] (VM29 vendor.js:8401)
    at R3Injector.push.../../node_modules/@angular/core/__ivy_ngcc__/fesm5/core.js.R3Injector.hydrate (VM29 vendor.js:195954)
    at R3Injector.push.../../node_modules/@angular/core/__ivy_ngcc__/fesm5/core.js.R3Injector.get (VM29 vendor.js:195771)
    at VM29 vendor.js:195809
    at Set.forEach (<anonymous>)
    at R3Injector.push.../../node_modules/@angular/core/__ivy_ngcc__/fesm5/core.js.R3Injector._resolveInjectorDefTypes (VM29 vendor.js:195809)
    at new NgModuleRef$1 (VM29 vendor.js:209242)
    at NgModuleFactory.push.../../node_modules/@angular/core/__ivy_ngcc__/fesm5/core.js.NgModuleFactory.create (VM29 vendor.js:209302)

角度:

"@angular-devkit/build-angular": "0.901.1",
"@angular-devkit/build-ng-packagr": "~0.901.1",
"@angular/cli": "^9.0.1",
"@angular/compiler-cli": "^9.1.1",

有人知道吗?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

我不知道根本原因和发生了什么。我只是删除了工作区,然后git再次克隆了该项目,这个问题已经消失了。奇怪!!

答案 1 :(得分:0)

我们最近注意到了这个问题,希望该解决方案能够对某人有所帮助。

在我们的情况下,导入特定的Angular库(自定义)时会发生此问题。

解决方案是在导入库的项目的preserveSymlinks文件中将true设置为angular.json

$.projects.<<PROJECT_NAME>>.architect.build.options.preserveSymlinks: true