2017-03-02 4 views
2

Wenn die URL, die getroffen werden soll, hat Variablen heißt API.openweathermap.org/data/2.5/forecast/city?name=[random_city_name]&APPID=[key_value], weitergegeben werdenAufruf RESTful api durch Ajax und Winkel js

dann, was besser ist, Ajax oder Winkel js zu verwenden.

Wenn ich Ajax verwende, wie soll ich dann die Variable übergeben? Ich bin ein Neuling darin. Also, brauche deine Hilfe.

Antwort

4

Ihre URL scheint Anforderungsparameter zu haben, und vorausgesetzt, Sie angular1

Dazu verwenden, können Sie

$http({ 
    method: 'GET', 
    url: url, 
    headers: {}, 
    params : {} 
}) 

Setzen Sie Ihre Parameter als eine Karte verwenden und http $ kümmern wird eine URL zu erstellen . Siehe $ http Dokumentation here

+0

ist es möglich, dies mit Ajax zu implementieren? – aayushi

+1

Ajax intern ist 'XMLHttpRequest'. So ist "$ http". Sie können einfachen AJAX verwenden, aber Winkelservice wäre vorzuziehen. Lesen Sie das Dokument von $ http, um sich besser damit vertraut zu machen. –

0
You can use angular $http service and pass your params like below. 

var UserInfo = function() { 
    $scope.userID = "1111"; 
    var req ={ 
     "method":"GET", 
     "url": someURL + $scope.userID, 
     "withCredentials":true 
    }; 
    $http(req).then(function(response) { 
     alert('success'); 
    }, function(response) { 
     alert('error'); 
    }); 
}; 
1

, was besser ist, Ajax oder Winkel js

Sie vergleichen können, nicht zu verwenden, wie AJAX einen Weg zu communicate (senden Anfragen und Antworten bekommen) bietet mit Der Server asynchronously und AngularJS verwendet AJAX, um die 2-way Datenbindung zu erweitern.

Um die obige Situation zu erreichen, können wir Angular $http Service verwenden.

var baseUrl = API.openweathermap.org/data/2.5/forecast/city; 
var method = 'GET'; 
var data = {}; 
var params = { 
    "name":cityName, 
    "APPID":key_value 
}; 

$http({ 
    method: method, 
    url: baseUrl, 
    params : params, 
    data : data 
}).then(function mySucces(response) { 
    $scope.data = response.data; 
}, function myError(response) { 
    $scope.data = response.statusText; 
}); 
+0

Wenn ich auf die Daten über meine HTML-Seite zugreifen möchte, dann ist die gleiche Syntax korrekt, also $ scope.data? Ich bin zu eckig sehr neu und bin nicht mit der Syntax vertraut. Danke! – aayushi

+0

Ja, Sie können in html mit angular Ausdruck '{{data}}' oder mit ng-repeat zugreifen, wenn es ein Array 'ng-repeat =" Element in Daten "' ist. –

+0

Ich meinte wenn ich ein Eingabefeld in html habe, wo ich die Stadt betrete und ich auf diese Stadt in angular.js zugreifen muss. Was soll ich dann tun? – aayushi