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

时间:2017-04-21 08:09:25

标签: angular-dart

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

我注意到这个AngularJs 2 - multiple instance of service created,但我不清楚正确的解决方案。我是否在main中创建了服务实例_myService

 void main() {
  bootstrap(AppComponent,[MyService]);
 }

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

由于

史蒂夫

2 个答案:

答案 0 :(得分:1)

您可以使用工厂构造函数模式,如here

答案 1 :(得分:0)

在引导程序中创建服务将确保应用程序只有一个实例(如果您不在某个组件中再次提供它)。

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