Как изменить параметры подписки в приложении при вводе пользователем в компоненте первого уровня - PullRequest
0 голосов
/ 23 мая 2019

Представьте, что вы разработали приложение 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 в каждой функции и повторить его, должен быть более простой способ.

Есть ли у вас какие-либо рекомендации?

...