Angular组件级服务注入另一个组件级服务

时间:2019-01-21 21:27:55

标签: javascript angular dependency-injection

我有一个在组件级别使用两个不同服务的组件。每个服务负责其组件的特定逻辑:

@Component({
  selector: 'my-component',
  templateUrl: './my-component.html',
  providers: [ServiceA, ServiceB]
})

同时,我需要ServiceBServiceA中的一些方法。所以我做了:

@Injectable()
export class ServiceA {
  constructor(private serviceB: ServiceB){}

  someMethod() {
     this.serviceB.makeSomething(); 
  }
}

这样的问题是可以这样在组件级别使用服务吗?它是如何工作的? ServiceA如何使用与ServiceB中相同的MyComponent实例?

UPD Here是我所拥有的简化示例。我知道我的例子并不完美,但我希望你能成功

1 个答案:

答案 0 :(得分:0)

对于服务,官方指南具有:

  • 创建具有由上下文封装的单一职责的服务。
  • 一旦服务开始超出单一目的,请创建新服务。

这可能是一个好建议。

原始文档在Single responsibility