javascript - 从参数对象构建查询字符串

标签 javascript angularjs querystringparameter

如何在 Angularjs 中构建带有查询参数的 url。

我看到 API $location.search()

问题是 $location(url) 是重定向到 url。在我的例子中,我想为查询参数传递一个 url 和 key:value 对并构建 url。像

网址:/a/b/c 参数:{field1: value1, field2: value2}

结果:/a/b/c?field1=value1&field2=value2

我喜欢用这个 url 作为链接。我还看到了 Angular 编码 ?& 字符。我可以避免这种情况吗?

编辑:

我的意图是使用 url 作为 anchor 元素的 href。我确实使用 $http 发送请求,但有时我需要提供一个带有查询参数的链接(基于当前对象)

谢谢

最佳答案

从 1.4+ 开始有一个很好的解决方案。您可以使用 $httpParamSerializer 从参数对象构建查询字符串:

var qs = $httpParamSerializer(params);

See docs here

Default $http params serializer that converts objects to strings according to the following rules:

{'foo': 'bar'} results in foo=bar
{'foo': Date.now()} results in foo=2015-04-01T09%3A50%3A49.262Z (toISOString() and encoded representation of a Date object)
{'foo': ['bar', 'baz']} results in foo=bar&foo=baz (repeated key for each array element)
{'foo': {'bar':'baz'}} results in foo=%7B%22bar%22%3A%22baz%22%7D" (stringified and encoded representation of an object)
Note that serializer will sort the request parameters alphabetically.

关于javascript - 从参数对象构建查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18665850/

相关文章:

javascript - 如何检查某些东西是否在 ng-class 的数组中

javascript - 在路由中使用 socket.io

javascript - 如何强制检查由 node.js 服务器处理的 http 请求的查询字符串中的特定参数序列?

javascript - 圣经经文正则表达式

javascript - 单击某个元素会触发所有相同的类,而不是单击的类

javascript - 访问已编译指令的隔离范围

jquery - 如何使用 Jquery 删除查询字符串中的空格?

testing - 如何使用 Postman 记录查询字符串参数

javascript - 正确使用绑定(bind)

javascript - Angular - 如何执行指令 "see"模板和 ViewContainer?