Angular2 - Маршрутизатор не выбирает маршрут / домашний путь

У меня есть приложение Angular2, использующее этот Angular2 Webpack Starter. Я просто добавил запасной маршрут к своему app.routes.ts файл после добавления его модуля (NotFoundModule) чтобы app.module.ts и все отлично работает, кроме теперь мой домашний путь ('') больше не регистрируется и NotFoundComponent грузы. Код ниже:

import { Routes } from '@angular/router';
import { HomeComponent } from './home';
import { NotFoundComponent } from './notfound/notfound.component';

import { DataResolver } from './app.resolver';

export const ROUTES: Routes = [
  {
     path: '', component: HomeComponent },
  {
     path: 'getstarted', loadChildren: './getstarted#GetStartedModule'
  },
  {
     path: 'open-account', loadChildren: './open-account/#OpenAccountModule'
  },
  ...
  ...
  ...
  {
    path: '**', component: NotFoundComponent
  },
];

Как я могу решить эту проблему, чтобы мой домашний маршрут снова работал правильно и NotFoundComponent не будет загружаться на своем месте?

1 ответ

Когда у вас есть маршруты, которые используют '' для их пути и не иметь детей, вы хотите указать pathMatch: 'full' для этого маршрута.

export const ROUTES: Routes = [
  {
     path: '', pathMatch: 'full', component: HomeComponent },
  {
     path: 'getstarted', loadChildren: './getstarted#GetStartedModule'
  },
  {
     path: 'open-account', loadChildren: './open-account/#OpenAccountModule'
  },
  ...
  ...
  ...
  {
    path: '**', component: NotFoundComponent
  },
];

См. https://angular.io/docs/js/latest/api/router/index/Routes-type-alias.html для обоснования.

Другие вопросы по тегам