2016-06-13 106 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

其次控制檯是POST方法之外。由於angularjs執行異步http調用,它不會等待http調用的結果,並會移動到下一行代碼,在您的情況下是console.log($ scope.favoris)。

希望它能澄清

+0

我認爲,但我不知道它是如何工作的 – Hanteed