在角度5中将一条路线导航到另一条路线时,如何解码URL?

时间:2018-11-23 11:06:20

标签: angular

我想使用查询参数从一个路径导航到另一个路径。

var name = "engine & machinery";

this.router.navigateByUrl('dashboard?isopen='+true+'&name='+name);

由此,将导航导航到仪表板页面,但是查询参数输入不正确。

网址来了,

http://localhost:4200/dashboard?isopen=true&name=engine%20&%20machinery=

通过以下代码获取查询参数,

console.log("testt", this.route.snapshot.queryParamMap.get('name'));

它仅返回"engine"

那么,有人可以帮助我解码url以及如何获取参数值吗?

预先感谢

1 个答案:

答案 0 :(得分:1)

使用encodeURIComponent使用此类特殊字符对URL进行编码。

var name = encodeURIComponent("engine & machinery");

在创建URL时。

然后在接收端使用decodeURIComponent

对其进行解码

类似这样的东西:

const encodedName = this.route.snapshot.queryParamMap.get('name')
const decodedName = decodeURIComponent(encodedName);
// This would yield `engine & machinery`

这是您推荐的Sample StackBlitz