У меня есть один метод, подписанный в ngOnInit
controller.ts.В представлении есть возможность выбрать другого пользователя из списка, который перенаправляет на ту же страницу, только ID из URL изменяется.Следовательно, ngOnInit
вызывается несколько раз.Следовательно, метод подписывается несколько раз.Сколько раз мы выбираем разных пользователей, метод вызывается для каждого номера выбранного члена, т. Е. Если мы выбираем 3 пользователей один за другим, маршрут меняется 3 раза, следовательно, метод вызывается 3 раза, когда наблюдаемый получает результат. Но если мы обновляем страницувсе отлично работаетно если бы я использовал отписаться в ngDestroy
, то он не будет снова подписан в ngOnInit
.Есть ли какое-либо решение для этого.
ngOnInit() {
this._myService.detailsReceived.subscribe((obj: details) =>
{console.log(obj.text)}
);
}
изменение маршрута на той же странице:
this.route.navigate(['user-home', userid]);
Я требую, чтобы этот метод оставался подписанным до тех пор, пока пользователь не выйдет из системы, следовательно, использование canonot subscribe.Take(1)