2016-07-15 5 views
0

Я пытаюсь определить, что маршрут, прежде чем он активируется, так что я могу кэшировать и перенаправить пользователя на этот маршрут после того, как они вошли в систему.Угловое 2 RC4 маршрутизатор получить предполагаемый маршрут, прежде чем активированный

В старый бета-маршрутизатор Мне удалось вызвать ComponentInstruction.routeName в активирующем крюке, но в новее canActivate() guard Я не вижу способа доступа к намеченному маршруту до его активации.

Я мог бы сохранить предполагаемый маршрут в общей службе, когда пользователь нажимает кнопку navagtion в моем приложении, но как насчет того, когда они вводят URL-адрес в адресной строке?

ответ

2

С угловыми исходных файлов маршрутизатора:

export interface CanDeactivate<T> { 
    canDeactivate(component: T, 
    route:ActivatedRouteSnapshot, 
    state:RouterStateSnapshot): Observable<boolean> | boolean; 
} 

ActivatedRouteSnapshot объект (маршрут) имеет url свойство - массив другого типа, в первом объекте в свойстве path ваш текущий путь.

Также внутри объекта RouterStateSnapshot объект (состояние) имеет только строковое свойство url с текущим путем, но с префиксом /.

Просто передайте эти аргументы вашего метода canDeactivate)

+0

Также работает с методом canActivate –

+0

Да, конечно, для обоих методов работы –

Смежные вопросы