2016-07-06 6 views
0

Gibt es eine Möglichkeit, Angular 2 Abhängigkeitsinjektion in der Konsole zu debuggen, um die Reihenfolge der erstellten Dienste zu überprüfen?Angular2 DI Debug

Zum Beispiel:

Erstellen Instanz von "AuthService" ...

Erstellen Instanz von "Userservice" ...

Ich erhalte einige seltsame Fehler wie:

reflective_provider.js: 240 Uncaught Kann nicht alle Parameter fürauflösen'ScaffoldStorage' (undefiniert, URLFileItemReader). Stellen Sie sicher, dass alle Parameter mit Inject geschmückt sind oder gültige Typ Anmerkungen haben und dass "ScaffoldStorage" mit Injectible geschmückt ist.

Vielleicht versucht Injektor MyService vor AuthService (der Dienst fehlt) zu schaffen oder vielleicht voneinander abhängige Dienste, die ich habe, .. nicht bewusst im (Ich habe mehr als 20 Dienste in der App zur Liste nicht rentabel alle hier:()

Edit:

1 - ich habe vergessen, die einfachste Lösung: schreiben "console.log" im Konstruktor jeden Dienstes ..

2 - ich habe gerade die Importfolge und gearbeitet .. Wer weiß warum?

# 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

Ist der 'ScaffoldStorage' mit' @ Injectable' dekoriert? – rinukkusu

+0

Ja, es ist ..... – felipepastorelima

Antwort

0

Die meiste Zeit, ist es, weil der Typ des ersten Konstruktorparameter Ihres Service kann nicht aufgelöst werden.

Zum Beispiel:

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

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

Wenn "./etwas" nicht existiert, sagst du? In meiner Situation existiert es .. Weil ich gerade die Reihenfolge geändert habe und es funktioniert hat – felipepastorelima