Angular 如何做全局刷新?

现在有一些需求是需要做一个全局的刷新功能,当然刷新是针对当前路由组件的数据更新了,之前想通过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发射、订阅事件中没有截取到任何动作,这个请教大神该怎么处理。


慕盖茨4494581
浏览 371回答 1
1回答

万千封印

angular6以上可以声明Singleton service,这种service只会被实例化一次。angular6一下的话可以在appmodule中注入一个service用作component之间的通信,这个service不能再在其它module中注入了,否则会被多次实例化。多次实例化后会有多个subject,无法达到component间通信的目的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript