【问题标题】:Query params has no effect with Angular2+查询参数对 Angular2+ 无效
【发布时间】:2017-11-29 17:00:28
【问题描述】:

我按照许多教程尝试使查询参数与 Angular2+ 一起工作(使用旧的 Http 模块,而不是新的 HttpClient 模块)

这是我得到的:

import {Injectable} from '@angular/core';
import {Http} from '@angular/http';
import {Observable} from 'rxjs/Observable';
import 'rxjs/add/operator/timeoutWith'; 

 getCurrentServiceMenu(till: Till) {
    const myParams = new URLSearchParams();
    myParams.set('till_uuid', till.uuid);

    return this.http.get(
      wsGetCurrentServiceMenu.url,
      {
        params: myParams,
        headers: this.authService.getAuthorizationHeader(),
      })
      .timeoutWith(timeout, Observable.throw(''));
  }

没有错误,但没有效果:查询中没有参数。

我正在使用 Angular 5.0.0 和 rxjs 5.5.2

【问题讨论】:

    标签: javascript angular http rxjs


    【解决方案1】:

    导入 Angular 的 URLSearchParams

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

    您正在使用本机 javascript URLSearchParams


    您也可以使用本机 javascript 类,但是您需要将其转换为字符串。

    return this.http.get(
        wsGetCurrentServiceMenu.url,
        {
            params: myParams.toString(),
            headers: this.authService.getAuthorizationHeader(),
        })
        .timeoutWith(timeout, Observable.throw(''));
    

    这种混乱可能导致 Angular 团队在新的 HttpClient 中使用 HttpParams 作为替代

    【讨论】:

    • 谢谢!确实很混乱:)
    猜你喜欢
    • 2019-07-19
    • 2016-05-15
    • 2017-02-01
    • 1970-01-01
    • 2019-05-31
    • 1970-01-01
    • 2019-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多