我有一个服务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
之间共享它不会有问题,因为它们都在同一个模块中。但是,由于是直接注入的,我不能再这样做了。请注意,每次只会创建一个并在.ComponentB
ComponentC
ServiceA
ComponentB
ComponentC
ComponentC
ComponentB
有没有办法在ComponentB
和之间共享数据ComponentC
?谢谢!