Исключение (специальное исключение) в параметрах маршрута - PullRequest
0 голосов
/ 03 апреля 2020

В моем app-routing.module.ts есть следующее определение маршрута:

{ path: 'messages/:id', loadChildren: './pages/message/message.module#MessagePageModule' },

Однако у меня есть страница, на которой загружаются заархивированные сообщения. Естественно, путь к этой странице будет примерно таким: messages/archived. Однако это конфликтует с маршрутом, который уже определен с помощью идентификатора для страницы сообщения, например messages/:id.

Как определить исключение, которое, если id == 'archived', должно загружать страницу с архивированными сообщениями?

Дополнительная информация: идентификатор в сообщениях всегда цифровой, т. Е. В реальном времени это будет что-то вроде messages/123.

1 Ответ

0 голосов
/ 07 апреля 2020

Suggetsion: Вы должны использовать параметры запроса для архивных сообщений, так как это тип сообщений, а не другой ресурс, тогда как: id - это отдельный ресурс.

Решение: Измените порядок архивного маршрута, как показано ниже:

В app-routing.module.ts

{ path: 'messages', loadChildren: './pages/message/message.module#MessagePageModule' }

В message-routing.module.ts

const messageRoutes: Routes = [
{
    path: '',
    children: [
        {
            path: 'archived',
            component: ArchivedComponent
        },
        {
            path: ':id',
            component: MessageComponent
        },
        {
            path: '',
            component: MessageComponent,
            pathMatch: 'full'
        }
    ]
 }

Как порядок маршрута объясняет здесь . Это должно решить вашу проблему.

...