Angular 5 Показать предупреждение браузера при изменении параметра запроса
У меня есть родительский компонент Item, у которого есть маршрут '/Item'.
У меня есть два дочерних компонента имени компонента Каталог и компонент AddSize.
По умолчанию компонент Каталог будет загружен с маршрутом '/item?q=catalogue'
, Затем пользователь выбирает продукт, после чего маршрут будет изменен на '/item?q=add_size'
и AddSize компонент будет загружен.
Теперь, если браузер нажимает кнопку возврата браузера, параметр запроса будет изменен с '/item?q=add_size'
в '/item?q=catalogue'
,
У меня проблема, когда пользователь нажимает кнопку "Назад" в '/item?q=add_size'
предупреждение о маршруте в браузере не работает.
служба охраны и приемник хоста не помогают в этом сценарии, потому что я нахожусь на том же маршруте и ожидаю предупреждения браузера только об изменении параметра запроса.
Есть ли у нас альтернативные решения?
1 ответ
Вам необходимо создать подписку на свой маршрут.
this._route.queryParams
.subscribe(
params => {
this.q = params['q'];
if (q == 'add_size')
{
do something
}
else if (q == params['catalogue'])
{
do something else
}
});
Поместите это в свой код OnInit().