如何在 angular 6 中的另一个服务中调用自定义服务

How to call custom service inside another services in angular 6

如何在angular6

中调用另一个自定义服务中的自定义服务

我创建了两个服务 user.services.ts 和 counter.services.ts

出现错误:无法调用类型缺少调用签名的表达式。类型 'Number' 没有兼容的调用签名

甚至尝试在 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);
 }
}

您正在调用 属性 activeToInactiveCounter 作为方法。我想你是想打电话给 incrementActiveToInactive().

所以 setUserActive 中的 this.counterSer.activeToInactiveCounter(); 应该是 this.counterSer.incrementActiveToInactive();

setUserActive(id: number) {
    this.activeUsers.push(this.inactiveUsers[id]);
    this.inactiveUsers.splice(id, 1);
    this.counterSer.incrementActiveToInactive();
}