Ich benutze angularjs
und ich kann nicht erhalten den folgenden Controller in einer $ Scope-Variable die Daten von einer AJAX
Anfrage an Flickr zurückgegeben zu speichern. Die $http.get
ruft eine lokal gespeicherte JSON-Datei auf. Bei Erfolg wird der in success()
zurückgegebene JSON verwendet, um die entsprechende URL für den AJAX-Aufruf an die Flickr-API zu ermitteln. Bei Erfolg dieses Anrufs protokolliere ich die Daten auf der Konsole. So weit, so gut, es gibt eine Reihe von drei Objekten zurück. Ich versuche jedoch, dieses Array auf eine $ Scope-Variable ($scope.photos
) zu setzen, damit ich meine Ansichtsvorlage durchlaufen kann. Jedoch, wenn ich versuche, {{photos}}
in der HTML-Ausgabe auszugeben, gibt es nichts. Ich vermute, dass dies ein Versprechensproblem ist, und die Vorlage wird gerendert, bevor der AJAX die Daten von Flickr zurückgibt, aber ich habe die Dokumente ohne Erfolg überflutet (siehe $q
ein wenig). Ich bin Angular etwas neu und würde Ihre Einsicht schätzen. Vielen Dank!
artistControllers.controller('PhotoController', ['$scope', '$http', '$routeParams', '$q', function ($scope, $http, $routeParams, $q){
$http.get('js/data.json').success(function(data){
$scope.artists = data;
$.ajax({
type : "GET",
dataType : "jsonp",
url : $scope.artists[$routeParams.itemId].flickr,
success: function(flickr){
$scope.photos = flickr.items;
console.log($scope.photos);
}
});
});
}]);
Warum jQuery anstelle von '$ http' verwenden? – Phil
Eine gültige Frage @Phil, siehe unten für ähnliche Kommentare. Eine kurze Antwort ist, dass ich (noch) keinen Flickr ohne $ .ajax erfolgreich aufrufen konnte. – FugueWeb
Hier ist eine Antwort, die Ihrem flickr-Problem helfen könnte: http://stackoverflow.com/questions/20720547/cant-use-angular-to-show-json-from-flickr –