2017-07-07 65 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使用,这个问题得到了解决。