【发布时间】:2019-09-12 17:08:27
【问题描述】:
我在使用不同路由的两个不相关组件之间同步数据时遇到问题。
如果我这样做,它会起作用:
但我需要在单独的路线上使用这两个组件: 本地主机:4200/a(组件A) localhost:4200/b (组件B)
这里是代码: 服务:
private messageSource = new BehaviorSubject('default');
currentMessage = this.messageSource.asObservable();
constructor() {}
changeMessage(message: string) {
this.messageSource.next(message)
}
组件A:
message: string;
constructor(private ts: StoreService) {}
ngOnInit() {
this.ts.currentMessage.subscribe(message => this.message = message)
}
html:
{{message}}
组件B:
message: string;
constructor(private ts: StoreService) { }
ngOnInit() {this.ts.currentMessage.subscribe(message => this.message = message)}
onChange() {
this.ts.changeMessage('FROM ACTIVATOR');
}
html:
<button type="button" (click)="onChange()">Activate!</button>
{{message}}
如果我在 componentB 中触发 onChange 函数,它应该在两个组件中显示“FROM ACTIVATOR”:
【问题讨论】:
-
...你是如何提供这项服务的,你确定它是单例吗?