angular - 路由参数中的异常(特殊排除)
问题描述
我的路由定义如下app-routing.module.ts
:
{ path: 'messages/:id', loadChildren: './pages/message/message.module#MessagePageModule' },
但是,我有一个加载存档消息的页面。自然,此页面的路径类似于messages/archived
. 但是,这与已经使用消息页面的 ID 定义的路由(即messages/:id
.
我如何定义一个例外,如果id == 'archived'
它应该加载带有存档消息的页面?
更多信息:消息中的 ID 始终是数字,即实时它会类似于messages/123
.
解决方案
建议:您应该对归档消息使用查询参数,因为这是消息类型而不是不同的资源,而 :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。这应该可以解决您的问题。
推荐阅读
- ios - Razorpay pod 在颤动运行期间被覆盖
- c# - 带有 KeyDown 事件 C# UWP 的画布上的元素运动
- javascript - 当我添加 data-toggle="dropdown" 时,href 不起作用
- javascript - 更改路由时如何防止使用 react-router-dom 和 react-redux 重新渲染?
- python - Django:使用内置的用户模型字段创建模型实例
- html - 在两个 svg 图标之间切换
- magento2 - Magento 2 创建新的管理员用户角色后面临此错误
- javascript - 在 Vue.js 3 中单击未知锚标记时如何运行函数?
- r - 在 R 中使用 WaveletComp 没有显示影响锥
- shell - 通过“grep”运行命令会中断输出(去除换行符)