2016-10-14 6 views
2

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

, но моя цель состоит в том, чтобы обнаружить изменения маршрута в общем, есть ли возможность сделать это?

+2

Просто обнаружить изменения маршрута в корневой компонент. –

+0

, но при обнаружении корневого компонента произошло только один раз –

+0

Подписываетесь ли вы на router.events? Не могли бы вы показать нам свой код корневого компонента? –

ответ

2

Вам необходимо поместить логику обнаружения маршрута в верхний компонент, который имеет верхний/первый <router-outlet>.

В моем случае это было бы AppComponent

.html

<router-outlet></router-outlet> 

.ts

export class AppComponent { 

    constructor(
     private router: Router 
    ) { 
     router.events.subscribe(event => console.log(event)); 
    } 
} 
+0

, это хорошо работает, у меня есть еще один вопрос, есть ли возможность получить параметры с маршрута? –

+0

Вам нужно ввести «ActivatedRoute» в компонент и подписаться на свойство «params» в конструкторе. –

+0

в корне compoenent? –