2014-01-17 142 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>