Ich habe Probleme beim Zugriff auf Daten in $scope
aus meiner Sicht gespeichert. Hier ist das Setup:
Ich habe Bilddaten in data/images.json
gespeichert.
{
"sample-image": {
"url": "imgs/sample.jpg",
"description": "This is an image."
}
}
Es wird von einer $http
Anfrage in einer Fabrik zugegriffen wird,
app.factory('getImageData', ['$http', function($http) {
var url = 'data/images.json';
return $http.get(url)
.success(function(data) {return data;})
.error(function(err) {return err;});
}]);
, die von dem Controller
app.controller('ImageCtrl', ['$scope', 'getImageData', function($scope, getImageData) {
getImageData.then(function(data) {
$scope.images = data;
}, function(err) {
console.warn('Error loading image: ', err);
});
}]);
In meiner Vorlage genannt würde ich im Idealfall haben möge so etwas wie <img src='{{ images.data.sample-image.url }} />
, jedoch {{ images.data.sample-image.url }}
wird 0
.
Bitte beachten Sie die folgenden Vorlage-Ergebnis Combos:
<pre>{{ images.data }}</pre>
kehrt
{"sample-image":{"url":"imgs/sample.jpg","description":"This is an image."}}jedoch
<pre>{{ images.data.sample-image }}</pre>
und
<pre>{{ images.data.sample-image }}
beide Rück
0
ich die tieferen Ebenen der Daten zugreifen können, wenn ich eine Winkel Funktion wie ng-repeat
:
<pre ng-repeat='image in images.data'>image.url</pre>
kehrt
imgs/sample.jpg
Warum erhalte ich 0
, wenn ich {{ images.data.sample-image.url }}
rufe, wenn die Daten eindeutig dort und zugänglich sind?
hilft Wie wird 'images.data' Objekt die angeforderte json zeigt? Wenn Sie '$ scope.images' als Wert für die von Ihrem Dienst zurückgegebenen' data' setzen, sollte '$ scope.images ['sample-image']. Url' nicht das sein, was Sie wollen? Wie erhalten die Daten, die Sie zurückgegeben haben, eine Dateneigenschaft? –