首页 > 解决方案 > 路由参数中的异常(特殊排除)

问题描述

我的路由定义如下app-routing.module.ts

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

但是,我有一个加载存档消息的页面。自然,此页面的路径类似于messages/archived. 但是,这与已经使用消息页面的 ID 定义的路由(即messages/:id.

我如何定义一个例外,如果id == 'archived'它应该加载带有存档消息的页面?

更多信息:消息中的 ID 始终是数字,即实时它会类似于messages/123.

标签: angularionic-frameworkionic4angular-routing

解决方案


建议:您应该对归档消息使用查询参数,因为这是消息类型而不是不同的资源,而 :id 是单个资源。

解决方法:更改归档路径的顺序如下:

在 app-routing.module.ts

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

在消息路由.module.ts

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

作为路线的顺序事项解释here。这应该可以解决您的问题。


推荐阅读