Angular 2刷新本地存储值更改视图

问题描述 投票:-4回答:1

我有一个导航栏,可以打印出用户的姓名和姓氏。这两个变量都取自组件init上的本地存储。我有一个模态,在模态中我可以更改已登录用户的名称和姓氏,并将它们再次放入本地存储中。如果我成功更改它们,我想用新名称和姓氏更新导航栏。

模态和导航栏是两个不同的组件。

我怎样才能做到这一点?

解决方案1:我正在考虑手动修改变量,同时成功执行新数据(名称和姓氏)的帖子。我可以从模态修改另一个组件(导航栏)的变量吗?

解决方案2:调用location.reload以强制使用本地存储中的新数据自动更新所有视图。

解决方案3:使用商店

谢谢

javascript angular store
1个回答
0
投票

创建用于获取/设置本地存储的包装器服务,该服务在设置时也会发出。模仿电话,比如,this.storageService.setItem('foo', 'bar'),而导航栏订阅了this.storageService.changes$

当某些内容写入存储时会发生事件,但只会在同一域的其他窗口中发出。

© www.soinside.com 2019 - 2024. All rights reserved.