我正在使用angular 2.0,特别是针对此问题的routing功能。我设置路由的方式如下所示。如何避免由于参数中的斜杠而导致恶心的URL?
const routes: Routes = [
{ path : ':filePath', component: ParentDisplayComponent,
children : [
{ path : 'metadata', component: MetadataDisplayComponent },
{ path : 'data', component : DataDisplayComponent }
]
}
];
因此,大家可以看到,我的一个URL最后可能会变成这样。
但是,因为我在做各种各样的文件浏览器,我的“文件路径”(初始参数)这个样子。
/foo/bar/baz
为了使这项工作,我不得不逃避斜线,所以现在我的网址最后看起来像这样
<host>:<port>/#/%252ffoo%252fbar%252fbaz/metadata
我知道,这或多或少是“精” ,但我真的很讨厌这样的外观,并且它不是非常人性化,就手动输入url而言。有没有人有任何建议如何让我的网站更友好?我需要一个跟踪所选文件的父级组件,这就是为什么我没有这样做的原因。
<host>:<port>/#/metadata?path=/foo/bar/baz
这样做的原因是,我想我的应用程序有一个“浏览器”(类似于Windows资源管理器),在任何时候,屏幕的左侧,在屏幕中间的可交换组件。像这样的图片。
___________________________
|___________________________|
| |
|file a | ____________________
|file b | |swappable component|
|file c | ---------------------
|etc... |
这可能就够了。考虑到我必须有包含斜杠的参数,有没有人有任何想法,尽可能让我的网站更好?
不知道为什么这是downvoted。我在问一个合理的问题。 – Zack
[angular 2禁用url编码]可能的重复(http://stackoverflow.com/questions/41476193/angular-2-disable-url-encoding) –
检查我的答案在这里:http://stackoverflow.com/questions/ 41476193/angular-2-disable-url-encoding/41995695#41995695 –