当前位置: 首页 > 知识库问答 >
问题:

如何在Angular2中使用http参数序列化器

齐昊
2023-03-14

我试图在Angular2中使用http参数序列化器。我谷歌了很多,但是例子只适用于angular1,如下所示。如何在templateUrl中注入$http参数序列化器

在Angular2中使用它的语法是什么?

共有2个答案

贺靖
2023-03-14

请查看HttpParams以替换URLSearchParams

这个用法有点棘手,因为HttpParams是不可变的,所以如果你想一个接一个地附加很多东西,你必须这样做。

var params = new HttpParams();
params = params.append('foo1', 'bar1');
params = params.append('foo2', 'bar2');
公孙弘图
2023-03-14

我也有同样的问题

我的解决方案是:我有一篇文章,我将数据发布到web服务,然后序列化我的对象。我就是这样做的。它非常简单,易于使用。

基本示例

let params = new URLSearchParams();
params.set('search', term); // the user's search value

设置搜索参数

我的表单组件。ts

import { Headers, RequestOptions, Http, Response, URLSearchParams } from '@angular/http';


// User is done editing, serialize and POST to web service
saveEdits(): void {
    let headers = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded' });
    let options = new RequestOptions({ headers: headers });

    // Dynamically serialize the entire object
    // *** THIS IS THE SERIALIZATION ***
    let params: URLSearchParams = this.serialize(this.selectedItem);


    this._http.post('http://URLtoPOSTobjTo/path', params, options)
      .map(this.extractData)
      .catch(this.handleError);

}

/**
 * Serializes the form element so it can be passed to the back end through the url.
 * The objects properties are the keys and the objects values are the values.
 * ex: { "a":1, "b":2, "c":3 } would look like ?a=1&b=2&c=3
 * @param  {SystemSetup} obj - The system setup to be url encoded
 * @returns URLSearchParams - The url encoded system setup
 */
serialize(obj: SystemSetup): URLSearchParams {
    let params: URLSearchParams = new URLSearchParams();

    for (var key in obj) {
        if (obj.hasOwnProperty(key)) {
            var element = obj[key];

            params.set(key, element);
        }
    }
    return params;
}
 类似资料:
  • 我希望在两个平台之间执行ECDH以导出共享密钥。我计划使用命名曲线(该曲线尚未确定)。该流看起来像这样: Alice挑了一条曲线 Alice为她的曲线生成一个随机密钥对 Alice序列化了一些关于她的曲线的数据 Alice将她的公钥和曲线数据发送给Bob Bob用Alice的数据初始化一条曲线 Bob根据Alice的数据创建密钥对 Bob执行ECDH派生共享秘密 Bob用他的公钥回应Alice A

  • 我试图做一个POST请求,但我不能让它工作: 我基本上想复制这个超文本传输协议请求(不是ajax),就像它是由html表单发起的一样: URL:/api 参数:用户名和密码

  • 注意:我已经做了一个搜索和阅读了各种博客,但找不到一个例子,与我正在尝试做什么。 它似乎不喜欢我的某个测试成员字段是私有的,但没有告诉我它对哪个字段有问题。我见过的单元测试的所有例子,唯一公开的一定是ExpectedException规则。

  • 我正在尝试访问我认为我已经从 vb.net 年的 JSON 文件中成功反序列化的数据。 我的程序当前将数据从 JSON 文件读入字符串。我一直在研究如何将 JSON 数据反序列化为类结构,并使用可视化工作室功能为我创建类结构。 我的问题是,反序列化后如何访问该数据?我已经浏览了数百页的论坛和堆栈溢出的帖子,但都无济于事。 以下是JSON数据: 下面是Visual Studio生成的类结构: 我使用

  • 问题内容: 如何序列化未实现Serializable的对象?我不能将其标记为Serializable,因为该类来自第3方库。 问题答案: 您不能序列化未实现的类,但可以将其包装在可以实现的类中。为此,您应该在包装器类上实现和,以便可以以自定义方式序列化其对象。 首先,使您的非序列化字段。 在中,首先调用流以存储所有非瞬态字段,然后调用其他方法来序列化不可序列化对象的各个属性。 在中,首先调用流以读

  • http请求:http://ipaddress:port/someresource?param1=value1&param2=value2&...... 诸如此类。这是jmeter中的http请求示例,它命中rest api并以JSON格式获得响应。 这里的挑战是Param1,param2,param3....这些搜索参数数不是恒定的,它可能会根据调用而改变,所以我制作了一个csv文件,其中包含以