Angular 5 показывать предупреждение браузера при изменении параметра запроса

У меня есть родительский компонент Элемент, у которого есть маршрут / Item.

У меня есть два дочерних компонента: компонент Каталог и компонент AddSize.

По умолчанию компонент Каталог будет загружен с маршрутом '/item?q=catalogue'. Затем пользователь выбирает продукт, маршрут будет изменен на '/item?q=add_size' и будет загружен компонент AddSize.

Теперь, если браузер нажимает кнопку «Назад», параметр запроса будет изменен с '/item?q=add_size' на '/item?q=catalogue'.

У меня проблема, когда пользователь нажимает кнопку «Назад» в предупреждении браузера маршрута '/item?q=add_size', которое не работает.

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

Есть ли у нас альтернативные решения?

1
0
102
1

Ответы 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 ().

Другие вопросы по теме