Mad*_*jan 23 angular2-http angular
通过URLSearchParams的Angular文档,我找到了关于将数组作为参数传递的任何文档.
任何人都可以帮忙吗?
Thi*_*ier 33
实际上,您无法直接传递数组,但可以多次使用该append方法:
let params = new URLSearchParams();
params.append('arrayparams', 'val1');
params.append('arrayparams', 'val2');
params.append('arrayparams', 'val3');
Run Code Online (Sandbox Code Playgroud)
ric*_*y89 16
如果你想使用@washington-braga的方法但不想安装lodash:
function buildParams(data) {
const params = new URLSearchParams()
Object.entries(data).forEach(([key, value]) => {
if (Array.isArray(value)) {
value.forEach(value => params.append(key, value.toString()))
} else {
params.append(key, value.toString())
}
});
return params.toString()
}
Run Code Online (Sandbox Code Playgroud)
事实上这是最简单的功能方式:
const url = new URL('http://localhost/')
url.searchParams.append('date[0]', date1)
url.searchParams.append('date[1]', date2)
console.log(url.toString())
Run Code Online (Sandbox Code Playgroud)
当然,您可以迭代数组。
URLSearchParams 可以传递一对序列,因此有一个值数组:
var ids = [1,2,3,4]
var search = new URLSearchParams(ids.map(s=>['id',s]))
var searchString = search.toString()
// "id=1&id=2&id=3&id=4"
Run Code Online (Sandbox Code Playgroud)
// To get the ids from the URL search string
var search_ids = [...search.getAll('id')]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11680 次 |
| 最近记录: |