Angular2:HowTo debug" Uncaught Invalid Provider"错误?

时间:2016-08-16 03:36:06

标签: angular

我在我的应用程序中有几十个导入,经过一个巨大的重构与官方的Angular2样式指南一致,我得到了臭名昭着的无效提供程序错误。我正在使用RC4。

reflective_provider.js:170Uncaught Invalid provider - only instances of Provider and Type are allowed, got: undefined

我该如何调试?我需要知道哪些导入/提供商是错误的。

这些是我的进口商品:

https://gist.github.com/nottinhill/4d61beb9e3a05a6cfc11c65fcb4ad89a

这是我的Ionic bootstrap:

https://gist.github.com/nottinhill/c8ef4f0f760af2f5a23ebeac35d6113b

2 个答案:

答案 0 :(得分:1)

在Angular2-RC4中provide @angular/core已弃用。你必须按如下方式定义你的提供者:

ionicBootstrap(MyApp, [

    GoalService,
    {
        provide : TranslateLoader,
        useFactory: (http: Http) => new TranslateStaticLoader(http, 'assets/i18n', '.json'),
        deps: [Http]
    },
    TranslateService,
    {
        provide : AuthHttp,
        useFactory: (http) => {
            return new AuthHttp(
                new AuthConfig(),
                http
            );
        },
        deps: [Http]
    },
    AuthService,
    AuthServerService,
    AuthServerMock,
    AuthZeroService,
    AuthZeroMock
]);

答案 1 :(得分:1)

根本原因是我的模块层次结构中的简单导入循环依赖。解决方案是在模块和服务导向中通过'../shared/service/service.service.ts'而不是'../shared/'明确导入。

Barell使用“../shared/index”在更高层次中导入工作正常。