Injectable Services 可以有提供者列表吗?

Can Injectable Services have a providers list?

我正在用组件 class 和服务 class 编写一些代码。

@Injectable()
class MyService extends Object {
  ...
}

@Component(
  ...
  providers: const [MyService]
)
class myCompoment implements onInit {
  final MyService _service;
  MyComponent(this._service);
  ...
}

有没有办法说,给我的可注射服务提供一个供应商,以便它可以消费?在网上看时,它表明 Component 来自 Injectable,所以我想从服务中创建一个组件,但这对我来说不太有意义,因为组件也有 UI.

理想情况下,我想做这样的事情:

@Injectable()
class AnotherClass {}

@Injectable(providers: const [AnotherClass])
class MyService extends Object {
  ...
}

@Component(
  ...
  providers: const [MyService]
)
class myCompoment implements onInit {
  final MyService _service;
  MyComponent(this._service);
  ...
}

但 Injectable 似乎不允许供应商 属性。

您可以将 providers: const [MyService, AnotherClass] 添加到组件,并且 MyService 可以通过将其列为构造函数参数来注入 AnotherClass

@Injectable()
class AnotherClass {}

@Injectable()
class MyService extends Object {
  final AnotherClass _anotherClass;

  MyService(this._anotherClass);
}

@Component(
  ...
  providers: const [MyService, AnotherClass]
)
class myCompoment implements onInit {
  final MyService _service;
  MyComponent(this._service);
  ...
}