2014-01-17 2 views
3

내 인생에서 나는 배열에서 데이터를 추출하고 인쇄 할 수 없습니다. PHP에서 JSON을 생성했으며이 데이터를 검색하기 위해 Angularjs를 연결했습니다. Chrome의 Angularjs 개발 도구는 코드를 실행할 때 객체의 배열 인 변수 "사용자"(아래 참조)를 가지고 있음을 알려줍니다. 사용자에게 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", "FIRSTNAME": "존", "LASTNAME": "미상", "이메일" : "[email protected]", "age": "29", "height": "74.5", "weight": "200", "gender": "M", "birthdate" 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에있다 :이 시도하고 내가 data.user을 시도하고 아무것도 없어 때

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

나는 아무것도 얻을 수 없다.

+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에서 데이터를 참조 할 수 있습니다

당신이 $rootScope에 데이터를 넣을 경우
<ul id="biometrics" ng-repeat="info in user"> 
    <li>Age: {{info.age}}</li> 
</ul> 
1

다음과 같이하십시오 :

$rootScope.user = data; 

$root like this :

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