2014-01-17 99 views
3

对于我的生活,我无法提取并打印出数组中的数据。我已经在PHP中生成JSON,并且已经连接Angularjs来检索这些数据。 Chrome中的Angularjs开发工具告诉我,当我运行代码时,我有一个变量“user”,它是一组对象(见下文)。我为用户创建了一个rootScope变量“$ rootScope.user = data;”所以我可以解决它。我是一个新手,所以这些都不是最好的做法。Angularjs:显示对象数组

{ 
    user : [{"user_id":"1","firstname":"John","lastname":"Doe","email":"[email protected]","age":"29","height":"74.5","weight":"200","gender":"M","birthdate":"2013-12-31","username":"john.doe","hash":"$2a$10$MECYLWuu6AwRxzBF\/CUys.AuqVm7Lf4BYRGezeusvLe6wNTkU3FEy"}] 
} 

这是我显示上述“用户”在同一页上使用ng-repeat是在其范围内:

<ul id="biometrics" ng-repeat="info in user"> 
    <li>Age: {{info.age}}</li> 
</ul> 

我在做什么错?也许我没有做错什么。我是Angularjs的新手,至少可以说。


我试过什么建议,但无济于事。我只是想尝试澄清我的代码/情况,以确保我没有搞砸。我想我可能一直不清楚,因为这也是我第一次在StackOverflow上发布。

这是字面上我的login.php文件的回报:

[{ “user_ID的”: “1”, “名字”: “约翰”, “姓氏”: “李四”, “电子邮件” : “[email protected]”, “年龄”: “29”, “高度”: “74.5”, “重量”: “200”, “性别”: “M”, “出生日期”:“2013- 12-31" , “photoURL”: “john.doe.jpg”, “用户名”: “john.doe”, “散列”: “$ 2A $ 10 $ MECYLWuu6AwRxzBF/CUys.AuqVm7Lf4BYRGezeusvLe6wNTkU3FEy”}]

这是我的登录控制器:

app.controller("LoginController", ['$scope', '$rootScope', '$http', '$location', function($scope, $rootScope, $http, $location) { 
    $scope.errorMessage = "Wrong password or username"; 

    $scope.login = function() { 

     $http({ 
      url: "./login.php", 
       method: "POST", 
       data: { cache: false, username: $scope.username, password: $scope.password }, 
       headers : {'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8'} 
      }).success(function(data, status, headers, config) { 
       $rootScope.user = data; 
       $location.path('/dashboard'); 
      }).error(function(data, status, headers, config) { 
       $scope.statusMessage = status; 
       alert($scope.errorMessage); 
     }); 
    } 
}]); 

这在我看来是HTML:

<ul id="biometrics" ng-repeat="info in user"> 
    <li>Age: {{info}}</li> 
</ul> 

我什么也没得到,当我尝试这一点,我想data.user和一无所获。

+0

看来$ rootScope.user = data应该是'$ rootScope.user = data.user'。也显示ng-repeat代码? – Chandermani

回答

0

试试这个。

希望这一个将有助于

 <ul ng-repeat="(key,value) in user[0]"> 
      <li>{{key}} : {{value}}</li>  
    </ul> 
0

你的数据是具有1个元件(一个对象文本)的阵列,并需要作为一个数组被引用。

1速战速决,你可以在你的$ http.success回调做:

$rootScope.user = data[0]; /* <-- notice the "[0]" to reference it as an array */ 

现在你可以在HTML这样的引用您的数据:

<ul id="biometrics" ng-repeat="info in user"> 
    <li>Age: {{info.age}}</li> 
</ul> 
1

如果你把数据$rootScope像这样:

$rootScope.user = data; 

那么你应该在$root像这样:

<ul id="biometrics" ng-repeat="(property, value) in $root.user[0]"> 
    <li>{{property}}: {{value}}</li> 
</ul>