NullInjectorError:没有 e 的提供者!在 Angular 8 中

问题描述 投票:0回答:5

main-es2015.6f31d328c9edc909ac03.js:1 错误错误:未捕获(承诺中):NullInjectorError:StaticInjectorError(i)[Se -> e]: StaticInjectorError(平台:核心)[Se -> e]: NullInjectorError:没有 e 的提供者!

仅当我执行 --prod build 时才会出现上述错误。 仅供参考,该模块是延迟加载的。

任何建议/帮助将不胜感激。

javascript angular
5个回答
5
投票

删除您已添加的提供商的所有服务

providedIn: 'root'

或者试试这个

@NgModule({
    providers: [
        MyService
    ]
})

您必须在 app.module.ts 中添加您的服务


2
投票

就我而言,我的组件之一中有providers:[...] 部分:) 当我删除它时,错误消失了。

希望这对某人有帮助!


0
投票

我也遇到了类似的问题,并且有同样晦涩的错误消息。就我而言,这是由我认为是 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();
}

0
投票

在我的例子中,Angular 14.1.1,问题是我创建了一个新的 Guard,但我忘记将其添加到我的 NgModule 的提供者中。

如需更多参考,请查看 https://angular.io/errors/NG0201


0
投票

对我来说,这比不使用可注入装饰器或在提供者列表中导入服务更糟糕。这是因为我的服务构造函数只有一个参数,并且注入是无参数的,所以它没有被正确注入,一旦更新了构造函数,它就可以正常工作了。

© www.soinside.com 2019 - 2024. All rights reserved.