我无法弄清楚如何将此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 }
这个带参数的网址如何:
http://example.com?operation=getEmployeeData&data= {" PARAMS" {"的firstName":"约翰"" lastName的":" DOE""的empType":"管理"" ORGUNIT":"管理""朗&#34 ;: "主机"}}
我是如何在Angular2中完成的? 谢谢!
答案 0 :(得分:2)
在Angular2中,Http.GET与AngularJS非常相似,但是为了传递url参数,你必须在URLSearchParams
包中使用@angular/http
。
你想做什么:
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()
...
答案 1 :(得分:1)
这是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);
}