2017-02-13 7 views
1

Как я могу получить ActivatedRoute в компоненте, который не связан с маршрутизацией?Угловая 2, как получить активированный маршрут по всему миру?

Я пытался так:

constructor(
    private _route: ActivatedRoute, 
) { 
    this._route.params.subscribe((params: Params) => { 

    console.log(params['param1'], params['param2']); 

    }); 

} 

Это журналы не определено, не определено.

ответ

1
constructor(private router:Router) { 
    router.events 
    .filter(e => e instanceof NavigationEnd) 
    .forEach(e => { 
    console.log(router.routerState.root); 
    console.log(router.routerState.root.firstChild); 
); 
} 
+0

Удивительный. Спасибо! Эй, что выводит довольно сложный набор объектов. Как я могу получить от этого параметры? И вложенные параметры? – BBaysinger

+1

'... root.params ['id']' или '... firstChild.params ['id']' должен работать. С приведенным выше кодом вы должны получить https://angular.io/docs/ts/latest/api/router/index/ActivatedRouteSnapshot-interface.html, если я не буду смешивать материал. –

+0

Есть ли способ получить Router из службы? Мой главный сервис нуждается в этой информации. В противном случае мой единственный вариант - захватить состояние маршрутизатора в компоненте и передать параметры в мою службу, что кажется немного взломанным. – BBaysinger