Angular 2 redirectTo с роутером не работает

angular

20705 просмотра

1 ответ

Я разрабатываю свое первое приложение, используя Angular 2, и я столкнулся со странной проблемой.

У меня есть моя конфигурация маршрутов, как это:

export const routes: RouterConfig = [
{ path: '', redirectTo: 'login' },
{ path: 'login',  component: Login },
{ path: 'home',   component: Home }
];

и когда я ввожу localhost: 3000, я автоматически перенаправляюсь на мой localhost: 3000 / login, который является моей страницей формы входа. Когда я ввожу свои учетные данные и нажимаю «Отправить», маршрутизатор не работает (нет ошибок в консоли), но удивительно, что маршрутизатор работает, когда я обновляю localhost: 3000 / login.

Я называю роутер так:

export class Login {
   constructor(public router: Router, public http: Http) {
   }

login(event, username, password) {
    event.preventDefault();
    //  ...
    this.router.navigate(['/home']);
}

}

Что может быть не так с этой конфигурацией маршрутов?

Автор: Andayz Источник Размещён: 08.11.2019 11:24

Ответы (1)


17 плюса

Решение

Вы должны опустить ведущий слеш:

this.router.navigate(['home']);

Также вам может понадобиться установить pathMatch: 'full'свойство на вашем маршруте перенаправления.

{ path: '', redirectTo: 'login', pathMatch: 'full' }

В противном случае ваш маршрут не сработает, когда есть другие маршруты с более глубоким доступным уровнем.

Автор: j2L4e Размещён: 20.08.2016 02:18
Вопросы из категории :
32x32