是否有非手动方式来创建Angular 6路由器路径的类似目录的结构?

dmc*_*dle 5 angular angular-router angular6

我正在设置一个Angular 6应用程序.组件使用类似目录的结构,目录可以包含其他目录,嵌套就像它们在磁盘上一样.该组件将显示目录中的内容列表,包括文件和其他目录,如果用户单击目录,我希望应用程序嵌套一个级别,并使URL反映该级别.换句话说,我希望路由器将状态信息保存在URL中,以便用户可以使用浏览器中的后退按钮并进行其他正常导航.

我可以使用路由器模块中的以下代码完成此操作:

{ path: 'show-dir/:dir1', component: ViewDirectoryComponent },
{ path: 'show-dir/:dir1/:dir2', component: ViewDirectoryComponent },
{ path: 'show-dir/:dir1/:dir2/:dir3', component: ViewDirectoryComponent },
{ path: 'show-dir/:dir1/:dir2/:dir3/:dir4', component: ViewDirectoryComponent }
....
Run Code Online (Sandbox Code Playgroud)

但是,这是有限的,因为我手动输入每个级别,并且不希望有100个手动条目(然后限制100个嵌套目录...)

有没有更好的方法来实现这一目标?

谢谢你的帮助.

Adr*_*ciu 3

有趣的问题。也许如果您将所有这些路径配置为根路径的子路径,您就可以完成所需的任务,而无需手动重复路径。

就像是:

{
    path: 'show-dir', children: [
        { path: '**', component: ViewDirectoryComponent }
    ]
}
Run Code Online (Sandbox Code Playgroud)

您拥有根show-dir路径,并且对于子级,您指定 ** ,它将匹配任何路由并加载视图目录组件。使用ActivatedRoute获取并解析url以显示相关内容。