我们正在尝试在 splat 路线旁边使用路线参数。这就是场景。
我们有一个导航菜单,然后作为选项之一的一部分,我们有一个向导。当我们转到向导时,我们想要传递我们正在处理的对象的标识符。同时,向导有步骤,我们希望在子级路由器上处理这些步骤,并将步骤作为路由的一部分传递(*详细信息)。
splat 路线如下所示:
{ route: 'offer/:offerId/*details', moduleId: 'offerbuilder/index', title: 'Offer Builder' }
子路线如下所示:
[
{ route: 'parameters', moduleId: 'parameters', title: 'Parameters', nav: true },
{ route: 'cart', moduleId: 'cart', title: 'Cart', nav: true },
{ route: 'workspaces', moduleId: 'workspaces', title: 'Workspaces', nav: true }
]
我们已经让路由器和子路由器来适当地解析路由,但我们遇到的问题是子路由的哈希不会替换传递的参数值,而是使用原始模式。换句话说,这确实有效:
http://oursite/main/#offer/123456789/parameters
但作为向导步骤的一部分生成的哈希是:
http://oursite/main/#offer/:offerId/parameters
我的问题是,splat 路线是否支持包含参数?如果没有,建议的解决方法是什么?