在我更新到最新的角度v4.3.2之后,我的所有网址都以&值为单位,例如我有一个我希望得到以下值的路由/:值:
http:// localhost:4200 / one&two
但它将我重定向到:
http:// localhost:4200 / one
并且由于来自网址的值是动态的,因此许多人可以拥有&我无法显示正确的结果 .
使用 CustomUrlSerializer 我设法将 %26 替换为 & 并通过应用程序内部的路由器导航但仍然在初始页面加载时,URL被分割:
import { UrlSerializer, UrlTree, DefaultUrlSerializer } from '@angular/router';
export class CustomUrlSerializer implements UrlSerializer {
parse(url: any): UrlTree {
const dus = new DefaultUrlSerializer();
return dus.parse(url);
}
serialize(tree: UrlTree): any {
const dus = new DefaultUrlSerializer();
const path = dus.serialize(tree);
return path.replace(/%26/g, '&').replace(/%2B/g, '+');
}
}
是否有任何解决方案来禁用url在&?
1 回答
好的,所以我知道&用作路由器中的特殊字符但是如果你需要获得该值而不是将其拆分:
编辑: node_modules/@angular/router/@angular/router.es5.js
从正则表达式中移除&它应该工作 .