2017-08-03 9 views
-2

私はユーザーリストを持っています、このユーザーを表示します。ユーザーは未読のメッセージを持っていて食事リストを書いていないので、必要な情報を得るためにhttp.getのメインリクエストにhttp.getを入れたいのですが、私の問題は非同期に動作することです。私はどうすればそれをすることができます。事前のおかげで

$http.get('http://example.com/users').success(function(response){   
      var data=response; 
      if(data==null || data.length<=0){ 
       return; 
      } 
      var date2 = new Date(); 

      var users=[]; 

      for(var i=0;i<data.length;i++){ 
       var diffDays=0; 

       if(data[i].uyelikBaslangicTarihi=="0"){        
        continue; 
       } 
       var from = data[i].uyelikBaslangicTarihi.substring(0,10).split("/");      
       var date1 = new Date(from[2], (from[1] - 1), from[0]);     
       var timeDiff = Math.abs(date2.getTime() - date1.getTime()); 
       diffDays = Math.ceil(timeDiff/(1000 * 3600 * 24)); 
       if(diffDays>28 || diffDays<0){        
        continue; 
       } 
       var week=diffDays/7; 
       week=parseInt(week); 
       if(diffDays/7>0) 
        week++;      
       if(week!=0) 
        week--; 
       var unloadweek=week+1; 
       var unreadmessage=0; 


       $http.get('http://example.com/menus?userId=' + data[i]._id + '&haftaSayisi=' + week).success(function(response){   
        if(response==null || response.length==0){unloadweek= "";} 
        else{unloadweek= week;}   
       }); 
       $http.get('http://example.com/sorus?userId=' + data[i]._id + '&okundu=0').success(function(response){ 
        console.log(response); 
        if(response==null){ unreadmessage= 0;} 
        else{unreadmessage = response.length;}  
       }); 
       var color="white"  

       var gender='mars' 

       if(data[i].cinsiyet=="Kadın") 
        gender='venus'; 
       var user={ 
        id:data[i]._id, 
        name:data[i].ad, 
        gender:gender, 
        weight:data[i].kilo, 
        height:data[i].boy, 
        birthday:data[i].dogum_tarihi, 
        email:data[i].email, 
        src:"http://example.com/images/"+data[i]._id+".jpeg", 
        color:color, 
        week:unloadweek, 
        unreadmessage:unreadmessage 
       } 
       if(data[i].uyelikBaslangicTarihi!="" && data[i].uyelikBaslangicTarihi!="0" && data[i].rol!="admin") 
        users.push(user); 

      } 
      $scope.customers=users; 



     }) 
     .error(function(err){ 
      alert("hata"); 
     } 

+1

を改善することを示唆しています非常に不明。言い直してみてください。また[ask]も参照してください。私はあなたが直面している問題を記述する[mcve]ではなく、コンポーネント内にあるすべてのものをダンプするだけのように、あなたのコードを読むのに気にしませんでした。 – Igor

+0

$ http.getの後に関数内のコードが実行され、$ http.getが返されます。 – James

+0

You '角度を使用しているので、スコープで定義された変数を変更した場合、ユーザーのコンテンツを変更すると、その変更はどこにでも表示されます。あなたの質問 –

答えて

0

あなたはチェーンにあなたのHTTPリクエストと適切に約束を必要とします。ドキュメントを参照してください(下記参照)。

unloadweek変数がgetの前に定義され、次の$ http.get resolve関数内で定義され、forループ内のすべての変数が使用されていることを尊重してください。

ないもあなたのコードの構造に問題がある可能性がある場合確認は:)あなたの質問があること;-)

https://docs.angularjs.org/api/ng/service/ $ HTTP#GET

https://docs.angularjs.org/api/ng/service/ $ qを

関連する問題