gpt4 book ai didi

angular - 如何使用查询字符串而不是 ';'

转载 作者:太空狗 更新时间:2023-10-29 17:24:28 24 4
gpt4 key购买 nike

我一直在编写一个内部工具,供使用由 C# WebApi 支持的 Angular2 beta 15 的开发人员使用。

随着新版本的发布,我升级了 Angular2 版本

我从第一天开始就在使用路由,但现在我需要添加可选参数。通常这是通过查询字符串完成的。

但是,Angular2 在查询字符串之前包含可选参数,如下所示:

http://www.example.com;a=b;c=4

最初我认为这很好,尽管这不是我习惯的方式。但是,我现在遇到了一些情况,我需要有“潜在危险的 Request.Path 值 [s]”,例如“*”(用于保存带有预填充的正则表达式搜索字段的链接)。

我能想到几个修复方法,包括:

  1. 将 * 替换为不同的符号 - 意味着开发人员必须知道特殊符号才能解放 url。
  2. 对参数进行 URL 编码 - 意味着开发人员必须知道 URL 编码值才能释放 URL。
  3. 排除那些具有特殊字符的参数 - 如果开发人员使用 * 释放 url,页面仍然会中断。
  4. 从预查询字符串参数切换到查询字符串参数。
  5. 手动控制查询字符串。

大多数简单的正则表达式在没有编码的查询字符串中是完全有效的,这意味着 (4) 和 (5) 都是有效的解决方案。

(5) 是可能的,但我无法想象我是唯一遇到此问题的人。如果存在官方解决方案,我宁愿不创建自己的解决方法。

(4) 是我的首选解决方案。我发现的许多旧示例都在查询字符串中显示了可选参数,因此我希望逻辑仍然存在并且分号版本只是默认选项。

是否可以告诉路由器使用查询字符串参数而不是现在使用的分号分隔的参数?

我搜索了 angular.io 和 stackoverflow,但找不到任何答案或任何人提出这个问题。

谢谢。

最佳答案

你可以试试这个:

<a [routerLink]="['/users']" [queryParams]="{q:'ABC', location:2929}">Test</a>

这将为您提供类似 http://www.example.com/users?q=ABC&location=2929

的路线

祝你好运。

关于angular - 如何使用查询字符串而不是 ';',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36631932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com