Angular中直接粘贴含子路由参数的外部URL时丢失orderId,无法加载订单详情子组件的问题求助
Angular中直接粘贴含子路由参数的外部URL时丢失orderId,无法加载订单详情子组件的问题求助
大家好,我最近在Angular项目里遇到了一个路由相关的问题,卡了好一阵了,想请教下各位大佬。
具体情况是这样的:
- 在App内部点击跳转时,URL
http://www.example.com/#/orders/new/today/3640963能正常打开「新建标签页」并且加载对应的订单详情子视图,完全没问题。 - 但如果我把这个URL复制出来,在新浏览器窗口直接粘贴访问(也就是从App外部直接访问这个子视图),URL会被自动跳转到
http://www.example.com/#/orders/new/today,末尾的orderId参数直接丢失了,导致订单详情子组件根本加载不出来。
以下是我当前的路由配置和Resolver代码:
路由配置(routes.ts)
{ path: ':tab/:date', component: OrdersComponent, children: [ { path: ':orderId', component: OrderDetailsComponent, resolve: {order: orderDetailsResolver} } ] }
订单详情Resolver代码
export const orderDetailsResolver: ResolveFn<myType> = ( route: ActivatedRouteSnapshot, _state: RouterStateSnapshot, ) => { return inject(OrdersService).getOrder(route.paramMap.get('orderId')!); };
我想实现的是,哪怕直接从外部粘贴带orderId的完整URL,也能正常加载对应的订单详情子组件,不会丢失参数。请问我应该怎么调整才能解决这个问题呢?
内容来源于stack exchange
相关产品推荐
相关产品推荐

