在Angular 7中,如果参数中包含分号,路由器将自动将其编码为%3B。如果您想在参数中使用分号,您需要手动将其编码为%3B。以下是一个示例解决方法:
Router
和ActivatedRoute
:import { Router, ActivatedRoute } from '@angular/router';
Router
和ActivatedRoute
:constructor(private router: Router, private route: ActivatedRoute) { }
encodeURIComponent
方法手动编码参数:const paramWithSemicolon = 'parameter;with;semicolon';
const encodedParam = encodeURIComponent(paramWithSemicolon);
this.router.navigate(['/your-route', encodedParam]);
decodeURIComponent
方法手动解码参数:ngOnInit() {
const encodedParam = this.route.snapshot.paramMap.get('param');
const decodedParam = decodeURIComponent(encodedParam);
console.log(decodedParam); // 输出:parameter;with;semicolon
}
通过这样的方式,您可以在参数中使用分号,并且路由器将正确解析和导航到带有分号的路由。