如何在 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 等工厂构造函数模式。
似乎每个组件都创建了自己的 [a] 服务实例。我不明白为什么。
我注意到这个 AngularJs 2 - multiple instance of service created,但我不清楚正确的解决方案。我是否在 main:
中创建服务实例_myService
void main() {
bootstrap(AppComponent,[MyService]);
}
然后将其复制到 [子] 组件(因为我还从组件提供者中删除了 MyService
)?这似乎不正确,因为组件在实例化之前引用 _myService
,我必须检查它是否为 null。
谢谢
史蒂夫
在 bootstrap 中创建您的服务将确保该应用只有一个实例(如果您不再在某些组件中提供它)。
只有当您在某个@Component 中提供它时,您才能获得它的多个副本 - 然后组件的每个实例(及其所有子组件)都将有一个单独的服务实例。
您可以使用 here 等工厂构造函数模式。