Zugriff auf geschachtelte JSON-Objekt im AngularJS-controller
Ich bin neu in AngularJS und versuchen, um eine $scope
für tracks
für eine spätere Verwendung
Daten.json (Beispiel):
[
{
"album": "Album name",
"tracks": [
{
"id": "1",
"title": "songtitle1",
"lyric": "lyrics1"
},
{
"id": "2",
"title": "songtitle2",
"lyric": "lyrics2"
}
]
}
]
Controller
app.controller('lyricsCtrl', function($scope, $http) {
$http.get('data.json')
.then(function(result) {
$scope.albums = result.data;
$scope.tracks = result.data.tracks;
console.log($scope.tracks); //Undefined...
});
});
Warum ist $scope.tracks
undefined?
Sieht aus wie Ihre
data
ist ein array von Objekten, die enthalten track
und album
. Also, so etwas wie würde für dein Beispiel: result.data[0].tracks
InformationsquelleAutor David | 2015-03-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Ihr json-Datei ist so wie Sie ist:
Haben wir eine Antwort:
Seit
data
wird als ein array zurückgegeben, die Sie behandeln würde wie jede andere javascript-array und Zugriff per index, so dass Sie könnte eine Schleife oder, wenn Sie wissen, dass nur 1 Ergebnis zurückgegeben wird können Sie mit der null-index:$http
gibt einerespose
Objekt in der.then
Funktion, undresponse.data
ist die tatsächlichen Daten, d.h. die top-level-array-Objekt oben.Sie sind absolut Recht, ich habe falsch gelesen und dachte, die OP war mit
.success
. Mein Fehler, werde ich korrigieren.InformationsquelleAutor jnthnjns
Ergebnis.data ist ein array,So müssen Sie zur Verwendung von index, um Zugang zu Ihrem Kind wie:-
tut mir Leid 😛
Für einige Grund, mit '[0]` wirft einen Fehler Leben, aber nicht lokal
TypeError: Cannot read property 'id' of undefined
InformationsquelleAutor squiroid
Sollte es sein Ergebnis.Daten[0].tracks als Daten ein array
$Umfang.tracks = Ergebnis.Daten[0].tracks;
InformationsquelleAutor Shashi