这样做有什么坏处吗
constructor(public injector: Injector) {} foo() { this.injector.get(SomeService).doStuff(); }
而不是这个
constructor(public service: SomeService) {} foo() { this.service.doStuff(); }
除了可读性?
我有一个相当复杂的组件相互扩展的层次结构,我想避免每次都要扩展构造函数,比如4或5个注入的服务。
这些方法没有区别,但是每次你这样做的时候 get 在注入器上,运行一个函数,该函数必须找到您提供的服务。你可以打电话 得到 一次并将服务的引用保存在属性中
get
得到
constructor(public injector: Injector) { this.someService = this.injector.get(SomeService); }
但是我认为在构造函数中注入精确的服务而不是 Injector 更具可读性。
Injector