Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带参数的Angular 2 http.get_Angular_Typescript_Http - Fatal编程技术网

带参数的Angular 2 http.get

带参数的Angular 2 http.get,angular,typescript,http,Angular,Typescript,Http,我想在GET请求中发送查询参数。我的班级是这样的: @Injectable() export class Loader implements TranslateLoader{ constructor(private http: Http){ } getTranslation(lang: string): Observable<any> { return this.http.get(routes.Localization.Get) ;// in th

我想在GET请求中发送查询参数。我的班级是这样的:

 @Injectable()
 export class Loader implements TranslateLoader{
  constructor(private http: Http){
   }
   getTranslation(lang: string): Observable<any>
   {
     return this.http.get(routes.Localization.Get) ;// in that place I need to pass params
   }
 }
@Injectable()
导出类装入器实现TranslateLoader{
构造函数(专用http:http){
}
getTranslation(lang:string):可观察
{
返回这个.http.get(routes.Localization.get);//在那个地方我需要传递参数
}
}

如何执行此操作?

这非常简单-您可以定义
URLSearchParams
并将其传递到
http.get
方法的第二个参数中:

import { URLSearchParams } from '@angular/http'

let params: URLSearchParams = new URLSearchParams();
params.set('param1', 'someValue');
params.set('param2', 'someValue');

return this.http.get(routes.Localization.Get, { search: params });

您可以利用
URLSearchParams
类实现以下目的:

getTranslation(lang: string): Observable<any> {
  let params = new URLSearchParams();
  params.set('param1', 'value1');

  return this.http.get(routes.Localization.Get, { search: params });
}
getTranslation(lang:string):可观察

现在,它提供了对编码/解码参数的支持。

当像这样的URL

您可以通过以下代码获取参数1:

import { Component, OnInit } from '@angular/core';
import { Router, ActivatedRoute, Params } from '@angular/router';

@Component({
    selector: '',
    templateUrl: './abc.html',
    styleUrls: ['./abc.less']
})
export class AbcComponent implements OnInit {
    constructor(private route: ActivatedRoute) { }

    ngOnInit() {
        // get param
        let param1 = this.route.snapshot.queryParams["param1"];
    }
}

可能是重复的,谢谢。我试着这样做:但是我的服务器控制器中有空值,不客气!似乎您试图从有效负载而不是查询字符串获取参数。虽然GET请求不被禁止,但最好利用查询字符串……猜猜我的.set函数为什么会失败?看起来它根本没有改变URLSearchParams对象。这个问题很老了。它还询问如何设置参数,而不是如何读取参数。对不起,标题是“Angular 2 http.get with params”。我只专注于标题(只获得不设置)。如果有任何遗漏,请忘记它。问题涉及到为http.get请求设置参数,请记住在顶部添加这一行:从“@angular/http”导入{URLSearchParams};这个混蛋抓住了我!