【发布时间】:2017-01-10 21:40:27
【问题描述】:
我正在使用angular 2.0,特别是routing 功能来解决这个问题。我设置路由的方式如下所示。
const routes: Routes = [
{ path : ':filePath', component: ParentDisplayComponent,
children : [
{ path : 'metadata', component: MetadataDisplayComponent },
{ path : 'data', component : DataDisplayComponent }
]
}
];
如您所见,我的网址可能最终看起来像这样。
<host>:<port>/#/<file path>/metadata
但是,因为我正在制作一个文件浏览器,所以我的“文件路径”(初始参数)看起来像这样。
/foo/bar/baz
为了完成这项工作,我不得不避开斜线,所以现在我的网址最终看起来像这样
<host>:<port>/#/%252ffoo%252fbar%252fbaz/metadata
我知道这或多或少“很好”,但我非常讨厌它的外观,而且就手动输入网址而言,它对用户不是很友好。有人对如何使我的网址更加用户友好有任何建议吗?我确实需要一个父级组件来跟踪所选文件,这就是为什么我没有做这样的事情。
<host>:<port>/#/metadata?path=/foo/bar/baz
这样做的原因是我希望我的应用程序始终在屏幕左侧有一个“浏览器”(类似于 Windows 资源管理器),在屏幕中间有一个可交换组件。想象一下这样的东西。
___________________________
|___________________________|
| |
|file a | ____________________
|file b | |swappable component|
|file c | ---------------------
|etc... |
这大概就够啰嗦了。考虑到我必须有包含斜杠的参数,有没有人有任何想法让我的网址更好?
【问题讨论】:
标签: angular url routing escaping urlencode