Angular 如何做全局刷新?

发布于 2022-09-11 16:22:59 字数 624 浏览 20 评论 0

现在有一些需求是需要做一个全局的刷新功能,当然刷新是针对当前路由组件的数据更新了,之前想通过rxjs直接在当前路由的组件中订阅事件就可,但是发现一个问题是我无法订阅到这个事件。

我当前是使用在最外层layout布局上需要使用这个功能点。

box-
    -header
        - refresh(当前功能)
    -body
        - router
            - components
    -footer
   
与之对应的加载方式
{
    path:'',
    component:layoutComponent,
    children:[
        {
            path:'',redirectTo:'/xxx',
        },
        {
            path:'xxx',
            loadChildren:'xxx/xxx.module#xxxModule'
        }
    ]
}

当然我是访问到这个xxx路径中,但是需要刷新是在layoutComponent里的headerComponent(头部)进行的动作,这个在用全局rxjs的subject发射、订阅事件中没有截取到任何动作,这个请教大神该怎么处理。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

时间海 2022-09-18 16:22:59

angular6以上可以声明Singleton service,这种service只会被实例化一次。angular6一下的话可以在appmodule中注入一个service用作component之间的通信,这个service不能再在其它module中注入了,否则会被多次实例化。多次实例化后会有多个subject,无法达到component间通信的目的。

笑叹一世浮沉 2022-09-18 16:22:59

确保是同一个Subject。你应该贴更相关的代码比如Subject的声明、推动、订阅。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文