我有一个服务ServiceA,它有自己的状态(实例变量等),在我的模块中我有多个 service 实例ServiceA。
@Injectable()
export class ServiceA {
// It defines instance variables.
}
由于我需要有多个实例ServiceA,因此我无法使其成为模块级组件。
在ComponentB实例化一个ServiceA实例并可能改变其状态:
@Component({
providers = [ServiceA],
})
export class ComponentB {
// changes the state of ServiceA.
}
同样在我的 HTML 模板中,ComponentB我有一个路由到ComponentC,它需要访问同一个ServiceA实例:
<a routerLink="/path_to_component_c"></a>
这是 的定义ComponentC:
@Component({
providers = [],
})
export class ComponentC {
// accesses ServiceA.
}
如果是模块级组件,则在和ServiceA之间共享它不会有问题,因为它们都在同一个模块中。但是,由于是直接注入的,我不能再这样做了。请注意,每次只会创建一个并在.ComponentBComponentCServiceAComponentBComponentCComponentCComponentB
有没有办法在ComponentB和之间共享数据ComponentC?谢谢!