main-es2015.6f31d328c9edc909ac03.js:1 错误错误:未捕获(承诺中):NullInjectorError:StaticInjectorError(i)[Se -> e]: StaticInjectorError(平台:核心)[Se -> e]: NullInjectorError:没有 e 的提供者!
仅当我执行 --prod build 时才会出现上述错误。 仅供参考,该模块是延迟加载的。
任何建议/帮助将不胜感激。
删除您已添加的提供商的所有服务
providedIn: 'root'
或者试试这个
@NgModule({
providers: [
MyService
]
})
您必须在 app.module.ts 中添加您的服务
就我而言,我的组件之一中有providers:[...] 部分:) 当我删除它时,错误消失了。
希望这对某人有帮助!
我也遇到了类似的问题,并且有同样晦涩的错误消息。就我而言,这是由我认为是 Angular 服务的类引起的(我没有编写它)。我导入了该类并通过组件的构造函数注入它。然后我收到此错误消息,但无法弄清楚原因。 事实证明,我使用的类不是 Angular 服务,而是传统的 TypeScript 类。所以我必须按照惯例实例化它(即没有 Angular 的依赖注入):
export class MyComponent {
// This is what caused my problem. "UtilClass" is no Angular service
// It can therefore not be injected
constructor(private util: UtilClass) {}
// This is the way to use it
const util = new UtilClass();
util.doStuff();
}
在我的例子中,Angular 14.1.1,问题是我创建了一个新的 Guard,但我忘记将其添加到我的 NgModule 的提供者中。
如需更多参考,请查看 https://angular.io/errors/NG0201。
对我来说,这比不使用可注入装饰器或在提供者列表中导入服务更糟糕。这是因为我的服务构造函数只有一个参数,并且注入是无参数的,所以它没有被正确注入,一旦更新了构造函数,它就可以正常工作了。