2017-02-20 4 views
0

Я не могу понять, как переписать этот AngularJS $ http.get в Angular2:Angular2 http.get от внешнего API

$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", "lang": "Eng"}}

Как я это делаю в Angular2? Спасибо!

ответ

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

Это пример для пост/получить. просто используйте метод как сообщение или зависните от своего требования.

необходимо заменить имя метода именем метода, которое вы вызываете.

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); 
} 
Смежные вопросы