计划是有两个参数化的部分(分别是项目和场景),之后的任何路径都是工具、区域、部分等的选择;
/{projectId}/{sceneId}/functionality
因此,如果你输入的参数太少,我们会为你选择一些方便的默认值,然后我们就出发了。首先,我使用redirectTo尝试了以下操作,但无论我尝试什么,都会出现各种错误,例如;
{ path: '', redirectTo:':projectid/:sceneid', pathMatch: 'full' },
{ path: ':projectid', redirectTo:':projectid/:sceneid', pathMatch: 'full'},
{ path: ':projectId/:sceneId', component: MainComponent, pathMatch: 'full'}
它总是抛出“无法重定向到[:projectId/:sceneId],找不到[:sceneId]”和类似的内容,无论它们的顺序如何,CamelCase,所有的小写字母,等等。也许这里的诀窍在于将每个片段嵌套到子代中,等等,尽管我已经尝试过,但失败了。
我已经尝试了数百种变体,但这是我在当前变体中的路由配置(上下文),我觉得有点粗糙(在多个部分重复该组件);
{ path: '', component: MainComponent, pathMatch: 'full' },
{ path: ':projectId', component: MainComponent, pathMatch: 'full' },
{ path: ':projectId/:sceneId', component: MainComponent, pathMatch: 'full', children:[
{ path: 'test', component: TestComponent, pathMatch: 'full' },
]}
我以为如果我做了“/10/20/测试”,这至少会给我带来一些好处,但它却抛出了一个“未找到”。我似乎无法正确地理解这一点。在绝望中,我将这一行添加到我的第一个代码示例中;
{ path: ':projectId/:sceneId/test', component: TestComponent, pathMatch: 'full' }
但当然,这只是渲染了最终组件,而没有向我们发送
<router-outlet>
包含MainComponent的路径。有什么想法吗?我已经检查了文档,但它们在动态路径上非常稀疏,我的谷歌foo让我失望了。这是前斜杠还是后斜杠的把戏?顺序或者只是错过了要点或概念?