离子 - 无法解析所有服务参数

时间:2017-10-30 16:31:07

标签: angular ionic-framework

我有一个IncomeTempService:

import {incomeService} from "./income.service";

export class incomeTempService {
  private incomeTmp: {value: number, usage: string, date: string};

  private value = null;
  private usage = null;

  constructor(private IncomeService: incomeService){

  }

  setValue(val){
    this.value = val;
  }

  setUsage(usg){
    this.usage = usg;
  }

  setDate(dat){
    this.incomeTmp = {value: this.value, usage: this.usage, date: dat};
    this.IncomeService.addIncome(this.incomeTmp);
  }
}

这是我的incomeService:

export class incomeService{

  private income: {value: number, usage: string, date: string}[] = [];

  addIncome(Income: {value: number, usage: string, date: string}){
    this.income.push(Income);
  }

  getIncome(){
    return this.income.slice();
  }
}

我有一个IncomeTempService的原因是因为数据将逐步传递,而不是一次传递。由于我是离子的新手,因此这似乎是逐步传递数据以构建完整对象的最佳方式。

所以我的问题是,当我访问http://localhost:8100/上的离子服务接口时 它说如下:

Screenshot

3 个答案:

答案 0 :(得分:0)

您的incomeTempService只是一个班级。您必须将其标记为@Injectable(),以便Angular知道它必须在其中注入依赖项。作为旁注,我不认为你应该这样命名你的课程。 IncomeTempService是标准。

答案 1 :(得分:0)

@Injectable()装饰器应该添加到你想要提供的每个服务中。只需要在服务中注入其他服务,这与装饰者似乎暗示的相反。他们的意思是"这项服务是可注射的"在这个意义上,服务是注入注入器(这是装饰者真正做的),并且注射器能够注入其中,因此可注射。

最佳做法就是永远添加它,有0个理由没有,如果你决定稍后注入一些东西,你就不会有任何错误。

答案 2 :(得分:0)

您必须在服务中添加@Injectable()