如何在一级组件的用户输入处跨应用程序更改订阅参数

时间:2019-05-23 19:13:55

标签: angular architecture frontend

想象一下,您已经设计了一个Angular应用程序,因此其中有一个布局模块,其中包含您的主要路由器出口,该布局包含一个侧边栏菜单,一个页脚,一个页眉和一个空白空间,其中其余的应用程序位于其中将要发生。

此应用程序具有向后端发出请求的服务,这些服务需要用户可以选择的参数。

在您的布局中,页脚中有一个组合框,用于指定部门区域,数据将从该部门区域显示在应用程序中。

例如,假设某个用户当前在生产部门中,并且在侧菜单的“雇员”子部分中,但是该用户随后将该部门更改为“市场”之类,单击页脚中的组合框,然后选择新部门,由于此新参数被更改,当前视图应获取新数据,然后应相应地更新数据。

这是我设想的方式,但是我无法做到,我必须刷新才能做到这一点,而且,除此之外,我对如何在整个应用程序中保存此参数一无所知。刷新。到目前为止,我已经解决了将其存储在localStorage中的问题,但是我真的不希望与它一起使用,因为它很容易操作。

我正在寻找在应用程序其余部分中订阅了使用此参数的服务的组件,这些组件在完成对组合框的更改后确实会接收新数据。

即使现在我当前的实现方式如下:

  getAllEmployees(){
    let areaId = localStorage.getItem('areaId');
    let periodYear = localStorage.getItem('periodYear');
    return this.http.get(`${environment.basic}harvey? 
       areaId=${areaId}&periodYear=${periodYear}`)
  }

但是我必须在每个函数中都获取localStoraget项目并重复它,这已经很粗略了,应该有一种更简单的方法。

您有什么建议吗?

0 个答案:

没有答案