2017-11-21 5 views
1

In meinem Controller liefert Ich mache den folgenden API-Aufruf:

weatherApp.controller('forecastController', ['$scope', '$resource', 'cityService', function($scope, $resource, cityService){ 
    $scope.city = cityService.city; 

    $scope.weatherAPI = $resource('http://api.openweathermap.org/data/2.5/forecast/daily', {callback: 'JSON_CALLBACK'}, {get: {method: 'JSONP'}}); 
    $scope.weatherResult = $scope.weatherAPI.get({ q: $scope.city, cnt: 4, APPID: 'xxxxxx' }); 

    console.log($scope.weatherResult) 
}]); 

Ich bin ein Versprechen im Gegenzug bekommen, aber es hat nicht die richtigen Informationen zurückgeben und wasn‘ kann Daten abrufen.

Error

Ich denke, das Problem mit, wie ich meine API-Schlüssel in den Anruf bin einfügen. Hat jemand Ideen?

+0

Ist das api jsonp aktiviert? Nicht alle sind – charlietfl

+0

Welche Version von AngularJS verwenden Sie? Die aktuelle Dokumentation sagt, dass ich 'JSON_CALLBACK' nicht verwenden soll – Phil

+0

Ich benutze' 1.3.0-rc.2' – user7496931

Antwort

0

So habe ich es geschafft, es zu lösen Art und bekam ein Versprechen im Gegenzug mit dem folgenden Code:

weatherApp.controller('forecastController', ['$scope', '$resource', 'cityService', function($scope, $resource, cityService){ 
    $scope.city = cityService.city; 

    $scope.weatherAPI = $resource("http://api.openweathermap.org/data/2.5/weather/?APPID=d98c063da512b5ab03e39ac4a158b41f", { 
    get: {method: "JSONP"}}); 

    $scope.weatherResult = $scope.weatherAPI.get({q: $scope.city, cnt: 5}); 


    console.log($scope) 
    console.log($scope.weatherResult) 
}]); 

ich callback :'JSON_CALLBACK' entfernt, da es veraltet ist und einen Fehler geben. Ich entfernte auch daily von der Anfrage-URL, da es nicht mehr zur Verfügung gestellt und ersetzt durch forecast wie in der API docs gesehen. Nun, zuvor habe ich einen Stadtplan als "New York, NY" aufgestellt, aber aus irgendeinem Grund benötigt openweathermapi den Status nicht (? Jemand korrigiert mich, wenn ich falsch liege). So entfernte ich den Staat und verließ es mit der Stadt für sich -> d. H. "New York", "New Orleans", "London" usw.

Dies scheint ein Versprechen mit den richtigen Daten zurückzugeben.

Verwandte Themen