2016-07-06 4 views
0

作成されたサービスの順序を確認するためにコンソールにAngular 2依存性注入をデバッグする方法はありますか?例えばAngular2 DI Debug

: "のAuthService" のインスタンスを作成

... "UserServiceの" のインスタンスを作成

...

私のようないくつかの奇妙なエラーを取得しています:

reflective_provider.js:240キャッチコピーのすべてのパラメータを解決できません'ScaffoldStorage'(未定義、URLFileItemReader)。 のすべてのパラメータがInjectで装飾されているか、有効なタイプの注釈が で、 'ScaffoldStorage'がInjectableで装飾されていることを確認してください。

たぶんインジェクタがのAuthService前MyServiceでを作成しようとしている(サービスが存在しない)、または多分私は..を認識していないイム相互依存的なサービスを持っている(私はここですべてを一覧表示する実行可能ではないアプリで20+のサービスを、持っています: ()

編集:

1 - 私は最も簡単な解決策を忘れてしまった..各サービスのコンストラクタで

2 "はconsole.log" を書く - 私は、インポートの順序を変更し、それ誰でも知っている理由は?

# Before 
 
# ... 
 
import { AUTH_PROVIDERS } from 'src/authentication'; 
 
import { SCAFFOLD_PROVIDERS } from 'src/scaffold'; 
 
# ... 
 

 
# After 
 
# ... 
 
import { SCAFFOLD_PROVIDERS } from 'src/scaffold'; 
 
import { AUTH_PROVIDERS } from 'src/authentication'; 
 
# ... 
 

 
# Boostraping: No change 
 
bootstrap(AppComponent, [ 
 
    # ... 
 
    AUTH_PROVIDERS, 
 
    ROUTER_PROVIDERS, 
 
    SCAFFOLD_PROVIDERS, 
 
    # ... 
 
    provide(PLATFORM_DIRECTIVES, {useValue: SHARED_DIRECTIVES, multi: true}) 
 
]).catch((error: Error) => console.error(error));

+0

'' @ Injectable'飾らScaffoldStorage'ていますか? – rinukkusu

+0

はい、それは..... – felipepastorelima

答えて

0

あなたのサービスの最初のコンストラクタのパラメータの型が解決できないので、ほとんどの時間、それはです。例えば

import {SomeType} from './something'; // wrong import 
import {URLFileItemReader} from './reader'; // rightimport 

@Injectable() 
export class ScaffoldStorage { 
    constructor(private service:SomeType, private reader:URLFileItemReader) { 
    (...) 
    } 
} 
+0

"./something"が存在しないとき、あなたは言う?私の状況では、それは存在する..私はちょうど順序を変更し、それが働いたので – felipepastorelima