Сервис Angular 7 не действует как синглтон - PullRequest
0 голосов
/ 12 декабря 2018

Я использовал ng generate для создания сервиса.Я инициализирую массив и меняю флаг, но при маршрутизации на другую страницу массив становится пустым, а флаг ложным.

Мой сервис начинается с

@Injectable({ providedIn: 'root' })

Я понял, что это создаст единый сервис для всего приложения, но раньше я использовал сервисы только для одностраничных приложений.Отличается ли это от многостраничных приложений / маршрутизации?

edit: я пробовал поле как статическое, которое тоже не работало.

edit 2: Это более или менее моя проблема: angular-7bp9kn.stackblitz.io Инициализировать на главной странице и отобразить (true).Перейдите к администратору (после того, как он был инициализирован дома) и отобразите (false).

1 Ответ

0 голосов
/ 13 декабря 2018

Я полагаю (из приведенного выше примера stackblitz) ваша проблема в том, что вы используете href вместо routerLink="/home" директивы.И поскольку href выполнит полную перезагрузку вашей страницы с новым URI, кажется законным, что служба будет инициализирована заново, так как все приложение загружается с нуля.

Итак, если вы просто замените href на routerLink, то через приложение будет только один экземпляр вашего сервиса.

Подробнее об этом можно прочитать здесь угловые документы

...