Je suis absolument nouveau dans AngularJS et j'étudie un tutoriel qui montre comment accéder à cette API de prévision météo externe: http://openweathermap.org/forecast pour récupérer et utiliser les informations météo.
Ainsi, dans mon application, j'ai un contrôleur comme ceci:
weatherApp.controller('forecastController', ['$scope', '$resource', '$routeParams', 'cityService', function($scope, $resource, $routeParams, cityService) {
// It contain the city selected in the view:
$scope.city = cityService.city;
$scope.days = $routeParams.days || 2;
$scope.weatherAPI = $resource("http://api.openweathermap.org/data/2.5/forecast/daily",
{ APPID: 'MY_PERSONAL_KEY',
callback: "JSON_CALLBACK",
cnt: 5
},
{ get: { method: "JSONP" }});
$scope.weatherResult = $scope.weatherAPI.get({ q: $scope.city, cnt: $scope.days });
$scope.convertToFahrenheit = function(degK) {
return Math.round((1.8 * (degK - 273)) + 32);
}
$scope.convertToDate = function(dt) {
return new Date(dt * 1000);
};
}]);
Et je trouve des difficultés tho comprendre comment exactement le service est appelé et les informations sont nécessaires.
D'après ce que je comprends (mais je ne suis absolument pas sûr si vous me corrigerez si je fais l'affirmation erronée) J'ai la situation suivante:
1) Dans le contrôleur j'injecte la ressource de $ service fourni par Angular que d'après ce que j'ai compris est un objet que je peux utiliser pour une interaction de service web RESTful conviviale.
donc par cette ligne:
$scope.city = cityService.city;
Je mets une ville (inséré par l'utilisateur dans la vue) dans la ville propriété de la portée de $ de ce contrôleur et ce sera l'utilisateur comme l'un des paramètres utilisés pour la requête webservice.
Puis-je créer la weatherAPI propriété sur la portée $ objet que je pense que devrait représenter le moyen d'accéder à cette ressource
$scope.weatherAPI = $resource("http://api.openweathermap.org/data/2.5/forecast/daily",
{ APPID: 'MY_PERSONAL_KEY',
callback: "JSON_CALLBACK"
},
{ get: { method: "JSONP" }});
Je pense donc que weatherAPI est une ressource objet créé par le $ ressource service (ou ai-je oublié quelque chose?).
Sur cela, je mis l'URL du service Web (http://api.openweathermap.org/data/2.5/forecast/daily) et un couple d'objets JSON, ceux-ci:
{
APPID: 'MY_PERSONAL_KEY',
callback: "JSON_CALLBACK"
},
dans lequel je déclare le APPID champ qui est ma clé personnelle d'utiliser la clé et le rappel : champ "JSON_CALLBACK". Que représente exactement ce champ callback?
Et ce deuxième objet:
{get: {méthode: "JSONP"}}
Ok, la roole de ces 2 objets pour moi sont assez obscurs.
Que définir exactement?Il me semble que sont quelque chose lié à la sécurité de ma candidature, mais je ne suis absolument pas sûr de ce
finnally il récupérer des données du service Web par:
$scope.weatherResult = $scope.weatherAPI.get({ q: $scope.city, cnt: $scope.days });
où je Thonk que je suis tout simplement passant le 2 paramètres (qui sont quelque chose comme? q = valeur &? cnt = valeur d'un HTTPRequest classique)