如何在 Angular Dart 中避免一个服务的多个实例

How to avoid multiple instances of a service in Angular Dart

似乎每个组件都创建了自己的 [a] 服务实例。我不明白为什么。

我注意到这个 AngularJs 2 - multiple instance of service created,但我不清楚正确的解决方案。我是否在 main:

中创建服务实例 _myService
 void main() {
  bootstrap(AppComponent,[MyService]);
 }

然后将其复制到 [子] 组件(因为我还从组件提供者中删除了 MyService)?这似乎不正确,因为组件在实例化之前引用 _myService,我必须检查它是否为 null。

谢谢

史蒂夫

在 bootstrap 中创建您的服务将确保该应用只有一个实例(如果您不再在某些组件中提供它)。

只有当您在某个@Component 中提供它时,您才能获得它的多个副本 - 然后组件的每个实例(及其所有子组件)都将有一个单独的服务实例。

您可以使用 here 等工厂构造函数模式。