我们如何使用Angular处理URL中的特殊字符

时间:2016-08-25 06:50:25

标签: angular typescript router

目前,我有一个这样的网址:

http://localhost/foo/barbar(2222) 

但是当我尝试在选项卡中打开它时,它不适用于Angular。它显示如下错误:

  

错误:无法匹配任何路线:'2222'

我们如何在Angular中处理这个问题。要获得结果,就像我们使用编码的网址打开它一样:http://localhost/foo/barbar%282222%29

1 个答案:

答案 0 :(得分:2)

在这个问题上,这是路由器组件的一个错误。有一种解决方法可以修复它。您必须延长encodeUri

encodeURIComponent(str) {
    return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {
        return '%' + c.charCodeAt(0).toString(16);
    });
}

检查Angular的GitHub回购中的问题。

  

https://github.com/angular/angular/issues/4895