2016-07-14 7 views
0

Ich erhalte die folgende Fehlermeldung, wenn ich versuche, meine ionic2 app (Typoskript)Laufzeitausnahme mit Anbietern - Ionic2, Angular2 (Typoskript)

ORIGINAL EXCEPTION: No provider for User! (BeerSearch -> User)

Nach laufen ist mein Code

#providers/beer_search/BeerSearch 
import { User } from '../user/user'; 
...... 

@Injectable() 
export class BeerSearch { 
    constructor(private http: Http, user: User, config: Config) { 
    this.headers = new Headers(); 
    this.headers.append('Access-Token', user.getAccessToken()) 
    } 
} 

#providers/user/user 
..... 

@Injectable() 
export class User { 
    accessToken: string; 

    constructor(private http: Http) { 
    this.accessToken = '<Some token>'; 
    } 

    getAccessToken(){ 
    return this.accessToken; 
    } 
} 

Ich kann nicht finden, was ich hier falsch mache, und dies gibt keine Fehler mit Typoskript in Kompilierzeit. Ich bekomme diesen Fehler nur in der Laufzeit.

+1

Haben Sie den 'User' Dienst in der Bootstrap-Aufruf zur Verfügung stellen oder die jeweilige Komponente? – rinukkusu

+0

hey @rinukkusu, danke für den Kommentar, aber ich rufe einen Provider in einem anderen Anbieter, muss ich das noch zu der Komponente hinzufügen? (Coz ich fügte hinzu, dass die Komponente und noch nicht funktioniert) – sameera207

+0

Sie können Dienste in Diensten in Diensten in Diensten aufrufen, wenn Sie das wollen. Das ist überhaupt kein Problem. Sie müssen sie nur entweder zum Array "Bootstrap-Provider" oder zum Provider-Array der Root-Komponente hinzufügen. Ansonsten werden sie nicht gelöst, wie Sie es gerade erleben. – rinukkusu

Antwort

1

Sie können Dienste in Diensten in Diensten in Diensten aufrufen, wenn Sie das möchten. Das ist überhaupt kein Problem. Sie müssen nur diese entweder an dem Array bootstrap Anbieter

bootstrap(App, [..., User, BeerSearch]); 

oder an die providers Array Root-Komponente hinzuzufügen.

@Component({ 
    ..., 
    providers: [..., User, BeerSearch] 
}) 
export class FooComponent { ... } 

Otherweise werden sie nicht wie Sie erleben gelöst bekommen nur

+1

danke @rinukkusu – sameera207

+0

Froh, ich könnte helfen! :) – rinukkusu

Verwandte Themen