2016-07-14 68 views
0

我收到以下錯誤,當我嘗試運行我的ionic2應用程序(打字稿)與提供運行時異常 - Ionic2,Angular2(打字稿)

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

以下是我的代碼

#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; 
    } 
} 

我無法找到我在這裏做錯了什麼,這也不會給編譯時帶打字稿的任何錯誤。我只在運行時遇到這個錯誤。

+1

你提供引導來電或相應組件的'User'服務? – rinukkusu

+0

嗨@rinukkusu,感謝您的評論,但我打電話給另一個提供商內的提供商,我還需要添加到組件? (因爲我加入到組件中,並且仍然沒有工作) – sameera207

+0

如果需要,您可以在服務中的服務中調用服務。這完全沒有問題。你只需要將它們添加到'bootstrap'提供者數組或者根組件的提供者數組中。 Otherweise他們不會像你剛剛經歷的那樣得到解決。 – rinukkusu

回答

1

如果需要,您可以在服務中的服務中調用服務。這完全沒有問題。你只需要他們要麼添加到bootstrap提供商陣列

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

或根組件的providers陣列。

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

Otherweise他們將不會得到解決像你剛剛經歷

+1

感謝@rinukkusu – sameera207

+0

很高興我可以幫助! :) – rinukkusu