繁体   English   中英

来自外部API的Angular2 http.get

[英]Angular2 http.get from external API

我无法弄清楚如何将此AngularJS $ http.get重写为Angular2:

$scope.toggle = function() {
 $http.get('http://example.com?operation=getEmployeeData', {
    params: {
      data: JSON.stringify({
        params: {
          firstName : 'John',
          lastName  : 'Doe',
          empType   : 'Administrative',
          orgUnit   : 'Management',
          lang      : 'Eng'
        }
      })
    }
  }).then(function(data) { $scope.staff = data }

这个带参数的url如何:

http://example.com?operation=getEmployeeData&data= {“params”:{“firstName”:“John”,“lastName”:“Doe”,“empType”:“Administrative”,“orgUnit”:“Management”, “郎”: “工程”}}

我是如何在Angular2中做到的? 谢谢!

在Angular2中,Http.GET与AngularJS非常相似,但是为了传递url参数,必须在@angular/http包中使用URLSearchParams
你想做什么:

let params: URLSearchParams = new URLSearchParams();
params.set("data",JSON.stringify({
        params: {
          firstName : 'John',
          lastName  : 'Doe',
          empType   : 'Administrative',
          orgUnit   : 'Management',
          lang      : 'Eng'
        }
      }));
//Make the call and return an observable
 return this.http.get(SomeVar.MY_URL, params)
      .toPromise()
      ...

这是post / get的例子。 只需使用方法作为帖子或取决于您的要求。

您需要将methodname替换为您正在调用的方法名称。

 private url = "http://example.com";

 methodname(resource1: String,resource2: String,resource3: String,resource4: 
 String,resource5: String){

 let body = JSON.stringify({"firstName":resource1,"lastName":resource2,
 "empType":resource3,"orgUnit":resource4,"lang":resource5});

let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers, method: "post/get" });

 return this.http.get/post(this.url,body,options)
        .map(this.extractData)
        .catch(this.handleError);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM