2016-04-19 4 views
1

В Angular 2.0 для перехода на другой маршрут мы можем использовать route.navigate([ 'routeName' ]). Но это действие сохранит текущий маршрут в истории браузера.
Каков способ замены текущего маршрута в истории браузера и переход на новый маршрут.Заменить текущий маршрут другим маршрутом

ответ

0

Вы можете использовать

navigateByUrl(url: string, _skipLocationChange?: boolean) : Promise<any> 

или

navigateByInstruction(instruction: Instruction, _skipLocationChange?: boolean) : Promise<any> 

на Router и передать true в _skipLocationChange для достижения этого эффекта.

(не пробовал себя, хотя еще и документы являются неточными, но я думаю, что это то, что вы ищете)

Подсказка: пока не поддерживается в новом RC.1 маршрутизатор

+0

В настоящее время поддерживается ли это в выпускном выпуске 3.0.0 маршрутизатора? –

+0

AFAIR это поддерживается сейчас. Я только на своем телефоне, поэтому трудно разобраться. –

+1

Это так. Я просто перепутал две версии, поэтому возникла ошибка. моя вина. –

0

You может попробовать это, он работает на угловых RC.1 + версии

this.router.navigate(['login'],{skipLocationChange:true}); 

Это переведет для входа маршрута, а не магазин входа маршрута в истории браузера.

1

Смотреть это: https://angular.io/docs/ts/latest/api/router/index/NavigationExtras-interface.html

Вы должны использовать опцию replaceUrl вместо skipLocationChange. Он отправит вас на новый URL-адрес, но текущий не будет сохранен, поэтому нажатие на него не вернет вас на эту страницу.

this.router.navigate(['login'],{replaceUrl:true}); 
Смежные вопросы