Куда поместить логику, которая никогда не будет отображаться?

#angular

#angular

Вопрос:

У меня есть ионное / угловое приложение. В этом приложении я реализую локализацию.

Целью было бы:

Чтобы получить текущую культуру:

  • Если пользователь вошел в систему, получите язык из его профиля
  • Если пользователь не вошел в систему, получите язык из браузера

Чтобы установить текущую культуру:

  • Если пользователь вошел в систему, сохраните язык в его профиле

У меня есть один модуль для аутентификации, у меня есть один модуль для локализации.

Я думал установить где-нибудь какой-нибудь код, который будет делать:

  • При запуске приложения зарегистрируйте текущие изменения пользователя и, если пользователь изменен, вызовите службу локализации для переключения языка
  • При изменении языка, если пользователь вошел в систему, сохраните новый язык

Я вижу именно тот код, который мне нужно сделать, но я не уверен, КУДА я должен это поместить? непосредственно внутри модуля кажется грязным, если я помещу его в службу, мне все равно нужно вызвать какой-то метод, чтобы активировать его.

Где правильный способ поместить такую логику?

Комментарии:

1. Вы можете зарегистрировать a Subject на этапе инициализации в какой-либо службе, которая сама обрабатывает translation при изменении какого-либо состояния, поэтому вам не нужно активировать вручную

2. взгляните на authGuards . может быть, это будет полезно для вас.

3. @AbdulrahmanFalyoun вы могли бы поместить свой сервис или эту часть логики в свой сервис autGuard, который, безусловно, вам придется позаботиться об аутентификации.

4. @AbdulrahmanFalyoun Службы 2 уже предоставляют некоторые наблюдаемые для регистрации. Мой вопрос в том, куда мне это поместить?

5. @FarhatZaman У меня уже есть настройка AuthGuard, но guard выполняется только на определенной странице, и каждый раз, когда вы переходите на эту страницу, верно?