簡體   English   中英

Angular2:如何調試“未捕獲的無效提供程序”錯誤?

[英]Angular2: HowTo debug “Uncaught Invalid Provider” Error?

我的app.ts中有數十個導入,經過大量重構以與官方Angular2樣式指南保持一致,我得到了臭名昭著的Invalid Provider Error。 我正在使用RC4。

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

我該如何調試? 我需要知道哪些導入/提供程序是錯誤的。

這些是我的進口貨:

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

這是我的離子引導程序:

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

在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
]);

根本原因是我的模塊層次結構中barell導入的循環依賴關系。 解決方案是通過“ ../shared/service/service.service.ts”顯式導入,而不是在所引導的模塊和服務中深入“ ../shared/”。

Barell使用“ ../shared/index”導入更高的層次結構效果很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM