如何在角度6的另一个自定义服务中调用自定义服务
我创建了两个服务user.services.ts和counter.services.ts
正在获取错误:无法调用类型缺少调用签名的表达式。类型“号码”没有兼容的呼叫签名
即使尝试在app.modules providers数组中添加服务名称,但同样会出错
user.services.ts
import { Injectable } from '@angular/core';
import { CounterService } from './counter.service';
@Injectable({
providedIn: 'root',
})
export class UserService {
activeUsers = ['Max', 'Anna'];
inactiveUsers = ['Chris', 'Manu'];
constructor(private counterSer: CounterService) { }
setUserActive(id: number) {
this.activeUsers.push(this.inactiveUsers[id]);
this.inactiveUsers.splice(id, 1);
this.counterSer.activeToInactiveCounter();
}
setUserInactive(id: number) {
this.inactiveUsers.push(this.activeUsers[id]);
this.activeUsers.splice(id, 1);
}
}
Counter.services.ts
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class CounterService {
constructor() { }
activeToInactiveCounter = 0;
inactiveToActiveCounter = 0;
incrementActiveToInactive() {
this.activeToInactiveCounter++;
console.log(this.activeToInactiveCounter);
}
incrementInactiveToActive() {
this.inactiveToActiveCounter++;
console.log(this.inactiveToActiveCounter);
}
}
答案 0 :(得分:4)
您正在将属性activeToInactiveCounter
称为方法。我认为您正在尝试致电incrementActiveToInactive()
。
因此,您应该拥有:this.counterSer.activeToInactiveCounter();
setUserActive
中的this.counterSer.incrementActiveToInactive();
setUserActive(id: number) {
this.activeUsers.push(this.inactiveUsers[id]);
this.inactiveUsers.splice(id, 1);
this.counterSer.incrementActiveToInactive();
}