2017-07-07 63 views
0

我有兩個服務:PlatformServiceAccountService無法解決所有參數PlatformService:([目標對象],[目標對象]?)

import {Http} from '@angular/http'; 
import {AccountService} from "./account.service"; 
import {ToastService} from "./toast.service"; 
@Injectable() 
export class PlatformService { 
    constructor(
    private http: Http, 
    private accountSvc: AccountService, 
    private toastSvc: ToastService 
) {} 
    //... 
} 


import {Http} from "@angular/http"; 
import {ToastService} from "./toast.service"; 
@Injectable() 
export class AccountService { 
    constructor(
    private http: Http, 
    private toastService: ToastService 
){} 
    //... 
} 

這是providersapp.module.ts

providers: [ 
    StatusBar, 
    SplashScreen, 
    ToastService, 
    AccountService, 
    PlatformService, 
    SocketService, 
    ModelService, 
    {provide: ErrorHandler, useClass: IonicErrorHandler} 
] 

我要注入accountService到我platformService,但我得到了以下錯誤:

Can't resolve all parameters for PlatformService: ([object Object], ?, [object Object]).

我不認爲我的代碼中存在循環依賴,也許是因爲platformServiceaccountService都注入httptoastService

當我在PlatformService的構造函數中註釋了private accountSvc: AccountService,後,此錯誤消失。

+0

你如何將它們添加到'providers'中 – Skeptor

+0

問題已更新,謝謝。 @Skeptor – awmleer

+0

這對我來說看起來很完美,你確定導入是否正常,正確路徑 – Skeptor

回答

1

我終於找到了錯誤。我在AccountService, 中導入了RoomPreparePage,並且我還在RoomPreparePage的構造函數中添加了AccountService,所以這似乎是循環依賴。 (不過,我並沒有在AccountService構造函數添加RoomPreparePage,我只是用它的AccountService的方法之一。)

之後,我刪除的AccountServiceRoomPreparePage使用,這個問題得到了解決。