2016-06-13 2 views
0

내 응용 프로그램에 문제가 있습니다. 나는 좋은 수의 결과를 가지고 있지만 그들은 모두 비어 있습니다. 내 처음에는 console.log($scope.favoris) 2 개체가 있고 내 두 번째는 console.log($scope.favoris)입니다. 정의되지 않았습니다.
(내 영어 죄송합니다)
감사 foreach의 각도 함수

.controller('ProfilCtrl', function ($scope, $http) { 
 
     var getfav = localStorage.getItem("favorites"); 
 
     var getfavo = JSON.parse(getfav); 
 
     var test = getfavo.length; 
 

 
     var log = []; 
 
     $scope.favori = []; 
 

 
     angular.forEach(getfavo, function (value, key) { 
 

 

 
      $http.post("http://api.exemple.fr/getFavoris.php?favoris=" + value).then(function (res, data) { 
 
        data = res.data; 
 
        $scope.favori.push(data); 
 
        // on dit que $scope.programs est egale au tableau program 
 
        $scope.favoris = $scope.favori; 
 
        console.log($scope.favoris); 
 
        return $scope.favoris; 
 
       }); 
 
      console.log($scope.favoris); 
 
     }); 
 
    });
<ion-view view-title="Profil"> 
 
    <ion-content> 
 

 
     <!--<div ng-repeat="favo in favoris">--> 
 
     <span class="info-ingredient-title">Recettes que vous aimez</span> 
 
     <div ng-repeat="favo in favoris"> 
 
       <a href="#/info/{{ favo.id }}"> 
 
        <div class="item-category"> 
 
         <div class="item-color-effect"> 
 
          <span class="item-calorie">{{ favo.calorie }}</span> 
 
          <span class="item-kcal">kcal</span> 
 
         </div> 
 
         <div class="item-black-effect"> 
 
          <span class="item-title">{{ favo.title }}</span> 
 
         </div> 
 
         <img class="item-img" src="{{ favo.img }}"> 
 
        </div> 
 
       </a> 
 
      </div> 
 
     <!--</div>--> 
 

 
    </ion-content> 
 
</ion-view>

+0

'$ http.post'가 비동기이기 때문에 예상대로 작동하지 않습니다. 대기열에 넣어졌고'post'가 반환되기 전에'console.log ($ scope.favoris)'가 호출되어 아직 데이터가 없습니다. '$ http'는 각을 알고 있고,'.then'이 완료된 후에 자동으로 당신의 데이터 바인딩을 갱신하기 위해'$ digest'를 발행합니다. – Claies

+0

당신이 내게 당신의 문제를 해결할 수있는 json 응답을 보내면 –

답변

0

두 번째 콘솔은 포스트 방법 밖에 있습니다. angularjs는 비동기 http 호출을 수행하기 때문에 http 호출 결과를 기다리지 않고 다음 코드 행으로 이동합니다.이 경우 console.log ($ scope.favoris)입니다.

바라기 희망

+0

나는 그것을 어떻게 생각하는지 모르겠다 고 생각했다. – Hanteed