英文:
In angular library - Error: NG0203: inject() must be called from an injection context such as a constructor, a factory function, a field initialize
问题
我在将我的项目从 Angular 9 升级到 15 后遇到以下问题。任何帮助都将不胜感激。我已经卡在这里超过2周。
在 Angular 库中的 app-lib.module.ts 文件中:
import { HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';
providers: [
{
provide: HTTP_INTERCEPTORS,
useClass: HttpService,
multi: true
},
],
在我的 Angular 库中的 hero.service.ts 文件中:
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class HeroService {
texting: string = 'Wow!';
constructor(private http: HttpClient) { }
getResult() {
return 'Wow!!!!!!';
}
}
如果我像上面的代码一样在构造函数中包括 (private http: HttpClient),则会出现以下错误。如果将其移除,应用程序可以正常运行。
Error: Uncaught (in promise): Error: NG0203: inject() 必须从注入上下文中调用,如构造函数、工厂函数、字段初始化程序或与 `EnvironmentInjector#runInContext` 一起使用的函数。更多信息请查看 https://angular.io/errors/NG0203
Error: NG0203: inject() 必须从注入上下文中调用,如构造函数、工厂函数、字段初始化程序或与 `EnvironmentInjector#runInContext` 一起使用的函数。
我已经提供了代码的翻译,如您所需。
英文:
After updating one of my project from angular 9 to 15 I'm getting below issue. any help would be appreciated. I'm stuck in it for more then 2 weeks.
app-lib.module.ts in the angular library.
import { HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';
providers: [
{
provide: HTTP_INTERCEPTORS,
useClass: HttpService,
multi: true
}, ],
hero.service.ts in my angular library
import { HttpClient } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class HeroService {
texting: string = 'Wow!';
constructor(private http: HttpClient) { }
getResult() {
return 'Wow!!!!!!';
}
}
getting below error if in include (private http: HttpClient) in the constructor like above code. if i remove it app is working fine.
Error: Uncaught (in promise): Error: NG0203: inject() must be called from an injection context such as a constructor, a factory function, a field initializer, or a function used with `EnvironmentInjector#runInContext`. Find more at https://angular.io/errors/NG0203
Error: NG0203: inject() must be called from an injection context such as a constructor, a factory function, a field initializer, or a function used with `EnvironmentInjector#runInContext`.
After updating one of my project from angular 9 to 15 I'm getting below issue. any help would be appreciated. I'm stuck in it for more then 2 weeks.
答案1
得分: 1
我升级应用程序时遇到了类似的问题,从 9.1
升级到 15.2.9
。当我将版本更改为 15.1.3
时,我的错误得以解决。检查你的 package-lock.json
文件以查找 Angular 版本中是否存在冲突。在我的情况下,我的某个库正在使用 15.1.3
作为它的依赖项,导致了这个问题。(@angular/core 版本冲突
)
英文:
I faced the similar issue when I tried upgrading my application from 9.1
to 15.2.9
. My Error got fixed when I changed the version to 15.1.3
. Check your package-lock.json
file to figure out any conflict present in the angular versions. In my case one of my libraries was using 15.1.3
as it's dependency which caused this issue. (@angular/core version conflict)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论