я понимаю по умолчанию сервисы в angular являются singleton.У меня есть страница события, на которой есть карточки, когда я нажимаю кнопку «Мне нравится», компонент события вызывает сервис (назовите его userService), который добавляет событие в массив, а затем консоль регистрирует массив, чтобы я мог проверить.Все работает хорошо, однако, когда я покидаю страницу события и возвращаюсь (используя маршрутизатор), массив снова становится пустым.Я прочитал немного о сервисном синглтоне в документации, но я не могу понять решение или проблему в этом отношении.
//this is the user.service.ts
@Injectable({
providedIn: 'root'
})
export class UserService {
userModel: UserModel;
constructor() {
this.userModel= new UserModel();
}
//adding liked to an arary.
likedEvents(event: EventModel){
this.userModel.likedevent.push(event);
console.log(this.userModel.likedevent);
}
}
, и именно здесь я звоню
//this is event.component.ts
constructor(private userService:UserService, ) { }
like(){
alert('hi');
this.event.title ='event Title';
this.event.location ='event location';
this.event.etablissement = 'event etablissemetn'
this.event.type = 'happy hour'
console.log(this.event);
//here i call the service
this.userService.likedEvents(this.event);
this.userService.saveLikedEvents();
}
Чего я не понимаю, так это того, почему у службы есть несколько экземпляров, во-вторых, как я могу сократить ее до одного экземпляра, я прочитал документацию, но я не совсем понимаю, так как я новичок в angular.
ОБНОВЛЕНИЕ: в навигационной панели я использовал href, я переключился на routerlink, и проблема решена.Однако при обновлении страницы все та же проблема.