2016-05-29 7 views
2

Ich bin ziemlich neu zu angularjs und irgendwie theres kann ich nicht eine Abhilfe schaffen.Javascript Angularjs erhalten Einzelwert von Array

Es wird ein einzelner Wert aus einem JSON-Array abgerufen und dann in eine Bereichsvariable eingefügt. Sagen wir einfach von einer PHP-Abfrage eine Reihe bekam, die wie dieser (gedruckte Ansicht) aussieht:

array(
[name] => John Doe, 
[age] => 29, 
[gender] =>male); 

Und dann wird es durch diesen Anwendungsbereich Variable hinzugefügt:

$scope.profile = response.data; 

Wie kann ich eine einzelne ein Pick Wert von diesem Array und legen Sie dann separate Scope-Variablen?

$scope.name; $scope.age; $scope.gender; 
+0

Versuch 'response.data.name' oder' response.data [ 'name'] 'und weisen es' $ scope.name' – uzaif

+0

Ich habe es versucht, es hat nicht funktioniert. Sieht so aus, als müsste ich es zuerst von json auf ein Objekt übertragen. – Alvin

+0

Parse JSON-Objekt in JavaScript oder versuchen PHP Daten in json_encoded Format – uzaif

Antwort

1

von Ihrem PHP Ihre Daten senden zurück json_encode

return json_encode($array); 

mit dem Sie dann geben

object { 
name: 'John Doe', 
age: '29', 
gender: 'male' 
} 

Und Sie können dann zugreifen mit:

$scope.profile = response.data; 
// 
$scope.name = $scope.profile.name; 
$scope.age = $scope.profile.age; 
$scope.gender = $scope.profile.gender; 

Beispiel:

var app = angular.module('someApp', []) 
 
    .controller('someCtrl', function ($scope) { 
 
    
 
    var object = { 
 
     name: 'John Doe', 
 
     age: '29', 
 
     gender: 'male' 
 
    }; 
 

 
    $scope.profile = object; 
 
    
 
    $scope.name = $scope.profile.name; 
 
    $scope.age = $scope.profile.age; 
 
    $scope.gender = $scope.profile.gender; 
 
    
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="someApp" ng-controller="someCtrl">{{name}}, {{age}}, {{gender}}</div>

+1

irgendwie funktioniert das. Vielen Dank. – Alvin

0
$scope.name = response.data.name; 
$scope.age = response.data.age; 
$scope.gender = response.data.gender; 

Dies sollte sich die $scope hinzuzufügen.

Stellen Sie sicher, dass sich die Elemente in einem Objekt und nicht in einem JSON-String befinden.

Oder wenn Sie mit dem anderen bleiben Sie schon:

$scope.name = $scope.profile.name; 
$scope.age = $scope.profile.age; 
$scope.gender = $scope.profile.gender; 
+0

die Elemente sind immer noch auf JSON-String. Wie kann ich es zuerst übertragen? – Alvin

+0

die zweite Methode hat auch nicht funktioniert – Alvin

+0

JSON.parse (stringToParse); – mitchken

Verwandte Themen