node.js - 一个角度组件如何在不手动刷新整个页面的情况下告诉另一个组件刷新
问题描述
我有一个带有firebase auth的节点后端,它连接到一个角度前端。我有两个组件,即导航栏和注册表单,当我注册时,我调用后端函数在 firebase 中注册并发回 firebase.auth().currentUser,我的 Angular 前端导航栏应该如何检测到此类用户的到来和相应地更新自身,无需我刷新页面?
解决方案
输入和输出运算符很好,但它不能像可观察的那样提供共享数据的灵活性
在这里,您需要使用 Subject Observable 在应用程序之间共享数据。这是非常简单和有用的事情。当用户注册时,您可以向所有 lisner 发送信号。
你需要做什么
1)创建一个服务文件来共享数据 - 服务具有可观察的主题。使用它,您可以订阅用户数据的频道
2)在您的标头组件中侦听该服务并将侦听器传入数据设置为标头用户数据
3) 从您的注册、个人资料更新或其他任何用户数据已更新的地方,只要将这些数据传递给可观察对象,它将自动更新整个应用程序中的用户。按照下面的例子来实现这一点
您可以在下面的链接中找到工作演示
推荐阅读
- apache-spark - Spark 在读取时强制分区
- c# - 如何在 C# 中将 Json 键:值转换为值:值?
- reactjs - 命令 npm start 出错 如何解决此问题
- java - Java非空循环会影响线程读取静态变量吗?
- python - 替换 Pandas DataFrame 中出现撇号的文本的问题
- database - 通过 API 调用从 MS Azure 笔记本连接到本地数据库
- java - Android:地理围栏在前台工作但在后台不工作时工作正常
- r - R 将一个数据帧的每一行值与另一个数据帧的每一行值相乘,创建新的数据帧
- laravel - 无服务器 Laravel 部署问题
- android - Android Manifest中应用程序中的Android Tag权限?