webForumDet fria alternativet

Lite problem med json

JavaScript

3 svar · 819 visningar · startad av grennfox

Medlem sedan feb. 2010177 inlägg
Frågan#1

Hallå!

Jag har en databas som hämtar ut information och skickar det sen vidare till en angularjs controller. men jag får inte ordning på det riktigt. Då jag kan konsol logga ut vad jag får för något från php så ser det ut som så här:

->Object {home: Array[1]}
    ->home: Array[1]
          ->0: Object
               id: "1"
               infoLeft: "Left side"
               infoMiddle: "Middle"
               infoRight: "Right Side"

Då till mitt problem, jag vill kunnda få ut text enbart det som ligger under infoLeft.
Men har absolut ingen aning hur jag ska komma åt den.
Och om jag bara printar ut data så blir det så här:

{"home":[{"id":"1","infoLeft":"Left side","infoMiddle":"Middle","infoRight":"Right Side"}]}

Men så här ser min angularjs controller ut iallafall som ska hantera datan.

controller('HomeCtrl', ['$scope', '$http', function($scope, $http) {
  	$http.get('../server/home/getInfo').success(function(data){
      console.log(data);
        $scope.infoLeft = ??;
        $scope.infoMiddle = ??;
        $scope.infoRight = ??;
      });

  }])

Där jag har satt frågetecken är för jag vet inte vad jag ska skriva där för att komma åt just rätt info.

Hoppas ni fattar vad jag är ute efter :)

Medlem sedan mars 2006296 inlägg
#2
<?php
    $json_object = json_decode('{"home":[{"id":"1","infoLeft":"Left side","infoMiddle":"Middle","infoRight":"Right Side"}]}');
    echo $json_object->home[0]->infoLeft;
    /* Left side */
?>

<script>
    var obj = JSON.parse('{"home":[{"id":"1","infoLeft":"Left side","infoMiddle":"Middle","infoRight":"Right Side"}]}');
    console.log(obj.home[0].infoLeft);
    /* Left side */
</script>

Jag har ingen koll på Angular men förutsatt att hela json objektet skickas till javascript controllern borde det bli den här sökvägen.
Eller har jag missat något?

Medlem sedan juni 20019 519 inlägg
#3

är det så att du vill ha $scope till data.home[0]?

Medlem sedan feb. 2010177 inlägg
#4

voigtann1 skrev:

är det så att du vill ha $scope till data.home[0]?

Ja det var det som var meningen, men den infon jag fick av er hjälpte mig så jag löste det. det blev så här till slut:

$scope.infoLeft = data.home[0].infoLeft
257 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)