2016-06-13 12 views
0

私のアプリではイオン性の問題があります。私は結果の数が多いですが、それらはすべて空です。私の最初にconsole.log($scope.favoris)私は2オブジェクトがあり、私の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

第2コンソールは、POSTメソッドの外にあります。 angularjsは非同期http呼び出しを実行するので、http呼び出しの結果を待つことはなく、次のコード行に移動します。このコード行は、console.log($ scope.favoris)です。

希望します。

+0

私はそれを考えましたが、私はそれがどのように動作するのかわかりません – Hanteed