如何在Angularjs中使用查询参数构建URL。
我看到了API $ location.search()
问题是$ location(url)是重定向到url。就我而言,我想为查询参数传递url和key:value对,并构建url。就像是
网址:/a/b/c params:{field1: value1, field2: value2}
/a/b/c
{field1: value1, field2: value2}
结果: /a/b/c?field1=value1&field2=value2
/a/b/c?field1=value1&field2=value2
我喜欢使用该URL进行链接。我也看到了angular encoding ?,&字符。我可以避免吗?
?
&
我的意图是将URL用作锚元素的href。我确实使用$ http发送请求,但有时我需要提供一个链接,其中包含查询参数(基于当前对象)
谢谢
从1.4+起有一个不错的解决方案。您可以使用以下命令从参数对象构建查询字符串$httpParamSerializer:
$httpParamSerializer
var qs = $httpParamSerializer(params);
在这里查看文档
默认的$ http params序列化程序,根据以下规则将对象转换为字符串:
{'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.