【问题标题】:Angular 4 is cutting queryParams with hashAngular 4 正在使用散列切割 queryParams
【发布时间】:2019-12-12 18:50:57
【问题描述】:

我正在一个组件中工作,该组件接收具有两个值的 queryParam:

示例: http://localhost:4200/start/setup-employee?c=RCS8KR8J&email=test$#myaddress@gmail.com

问题是如果我得到 queryParams 参数“c”是可以的,但参数“email”只返回“test$”,因为 # 剪切了参数。 知道如何解决这个问题吗?我看到我可以在片段中获得其余部分,但也许是另一个很好的解决方案。

【问题讨论】:

    标签: angular parameters routes


    【解决方案1】:

    当在 url 中传递特殊的 ml 字符时,在传递这样的值之前使用 encodeURIComponent 函数

    encodeURIComponent("test$#myaddress@gmail.com");
    

    输出

    test%24%23myaddress%40gmail.com
    

    然后做决定然后使用值

    decodeURIComponent("test%24%23myaddress%40gmail.com");
    

    输出

    test$#myaddress@gmail.com
    

    这种方式不会发生查询参数的切割。 这样,您可以随时在查询参数中使用所有特殊字符块。

    【讨论】:

    • 谢谢,我认为这是一个好方法。我将继续推进这个实现
    【解决方案2】:

    这不是 Angular 的错。这只是我们在执行 http 请求时如何处理 url 的一种行为,某些字符不能在 queryParam 值中使用,因为该字符已经具有保留含义。尝试将 # 替换为他的哈希值,您可以在其中分配值,例如:.replace('&', '%26');

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多