gpt4 book ai didi

Angular 4.3 - HttpClient 设置参数

转载 作者:太空狗 更新时间:2023-10-29 16:45:56 26 4
gpt4 key购买 nike

let httpParams = new HttpParams().set('aaa', '111');
httpParams.set('bbb', '222');

为什么这不起作用?它只设置 'aaa' 而不是 'bbb'

另外,我有一个对象 { aaa: 111, bbb: 222 }如何在不循环的情况下设置所有值?

UPDATE(这似乎可行,但如何避免循环?)

let httpParams = new HttpParams();
Object.keys(data).forEach(function (key) {
httpParams = httpParams.append(key, data[key]);
});

最佳答案

HttpParams 是不可变的。 setappend 方法不会修改现有实例。相反,它们会返回新实例,并应用更改。

let params = new HttpParams().set('aaa', 'A');    // now it has aaa
params = params.set('bbb', 'B'); // now it has both

这种方法适用于方法链:

const params = new HttpParams()
.set('one', '1')
.set('two', '2');

...尽管如果您需要将它们中的任何一个包装在条件中,这可能会很尴尬。

您的循环有效,因为您正在获取对返回的新实例的引用。您发布的代码不起作用,不起作用。它只调用 set() 但不获取结果。

let httpParams = new HttpParams().set('aaa', '111'); // now it has aaa
httpParams.set('bbb', '222'); // result has both but is discarded

关于Angular 4.3 - HttpClient 设置参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45210406/

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