【发布时间】:2019-11-21 19:46:59
【问题描述】:
如何在 2 个不同模块的 2 个不同组件之间共享数据。
我有 2 个模块仪表板和偏好以及两个组件dashboard.component.ts 和preference.component.ts 分别
我创建了 bar.service.ts 服务来传递数据,我的服务包含以下代码
private messageSource = 'orderView';
changeMessage(message: string) {
this.messageSource = message;
}
preference.component.ts 包含以下代码
this.bar.changeMessage('groupByView');
dashboard.component.ts 包含以下代码
console.log(this.bar.messageSource);
我正在使用路由和偏好显示偏好页面和仪表板显示仪表板页面。
当用户在偏好页面并将 messageSource 更改为 groupByView 时,它不会反映在仪表板页面上。
仪表板页面始终在 messageSource 中包含 orderView 值
【问题讨论】:
-
changeMessage和console.log是否在同步上下文中? -
@BálintRéthy 的意思是?
-
这意味着如果你先调用console.log然后再调用changeMessage,即使在异步上下文中(例如随机点击事件),它也会在控制台上写入orderView
标签: angular typescript