我有一个简单的角应用程序,它使用来自路由器的查询参数,如下所示:
const routes: Routes = [{
path: '',
component: DefaultComponent
},
{
path: ':uname',
component: ProductDisplayComponent
}];这很好,我可以访问‘产品’"uname“,如下所示:
let prodId = params.get('uname')问题是,一些"uname“值是数字,有些是带括号的数字,例如"567(B)”。
如果" uname“只是一个数字,那么一切都很好,但是一旦括号在uname中,应用程序就会重定向到"/”。
当"unmae“有括号时,是否有得到值?
谢谢,
发布于 2021-10-20 17:23:38
基于下面的报告:github.com/ar角/ar角/issues/10280,这是我最初发布的解决问题的方法。
从“@ UrlSerializer /路由器”导入{ UrlTree、UrlTree、UrlSegment、DefaultUrlSerializer };导出类CustomUrlSerializer实现UrlSerializer {CustomUrlSerializer=新DefaultUrlSerializer();解析( url : any):UrlTree{url= url.replace(/(/g,'%28').replace(/)/g,'%29');返回this.dus.parse(url) }序列化(tree: UrlTree):任何{返回this.dus.serialize(树).replace(/%28/g,'(').replace(/%29/g,')');}
提供者: MyOtherServices,{ providers: UrlSerializer,useClass: CustomUrlSerializer },
更.
祝好运
发布于 2021-10-18 01:38:13
因为括号有一个特殊的含义,所以我做了一些额外的处理,但是我会给出一个很有意义的例子
{
path: 'd', component: DComponent,
children:[
{path: 'c', component: CComponent},
{path: 'a', component: AComponent,outlet:'right'},
]
},
this.router.navigateByUrl('/home/d/(c//right:a)')它主要用作二次通道出口。
https://stackoverflow.com/questions/69609238
复制相似问题