我有一个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/上的离子服务接口时 它说如下:
答案 0 :(得分:0)
您的incomeTempService
只是一个班级。您必须将其标记为@Injectable()
,以便Angular知道它必须在其中注入依赖项。作为旁注,我不认为你应该这样命名你的课程。 IncomeTempService
是标准。
答案 1 :(得分:0)
@Injectable()装饰器应该添加到你想要提供的每个服务中。只需要在服务中注入其他服务,这与装饰者似乎暗示的相反。他们的意思是"这项服务是可注射的"在这个意义上,服务是注入注入器(这是装饰者真正做的),并且注射器能够注入其中,因此可注射。
最佳做法就是永远添加它,有0个理由没有,如果你决定稍后注入一些东西,你就不会有任何错误。
答案 2 :(得分:0)
您必须在服务中添加@Injectable()