Angular 5 Показать предупреждение браузера при изменении параметра запроса - PullRequest
0 голосов
/ 31 октября 2018

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

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

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

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

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

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

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

1 Ответ

0 голосов
/ 31 октября 2018

Вам необходимо создать подписку на свой маршрут.

this._route.queryParams
    .subscribe(
        params => {
            this.q = params['q'];
            if (q == 'add_size') 
            {
                do something
            }   
            else if (q == params['catalogue']) 
            {
                do something else
            }       
            });

Поместите его в свой код OnInit ().

...