Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular js$http.get in$http.get不工作_Javascript_Angularjs - Fatal编程技术网

Javascript Angular js$http.get in$http.get不工作

Javascript Angular js$http.get in$http.get不工作,javascript,angularjs,Javascript,Angularjs,我有用户列表,我将显示此用户。用户有未读消息且未写入用餐列表,我想在主http.get请求中发出两个http.get以获取所需信息,但我的问题是它是异步工作的,所以未读消息和星期值不会更改。我该怎么做呢。提前谢谢 $http.get('http://example.com/users').success(function(response){ var data=response; if(data==null || data.len

我有用户列表,我将显示此用户。用户有未读消息且未写入用餐列表,我想在主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");
        }
$http.get('http://example.com/users)。成功(功能(回应){
var数据=响应;

如果(data==null | | data.length您需要正确链接您的http请求和承诺。请参阅文档(见下文)

此外,请尊重您在该上下文中的变量范围-
unloadweek
变量在get之前定义,然后在下一个$http.get resolve函数中使用,以及for循环中的所有函数

不确定您的代码结构是否也有问题:)建议改进;-)

$http#获取


$q

您的问题非常不清楚。请尝试重写。另请参阅。我没有费心阅读您的代码,因为它似乎只是您组件中所有内容的转储,而不是描述您所面临问题的。函数中发生在$http.get之后的代码将在$http.get返回之前执行。您';re u因此,如果您更改了范围中定义的变量,那么如果您更改了用户内容,更改将传播到任何地方。我不理解您的问题$http。get进行异步调用,代码在后台执行时继续运行。您的代码和整体方法存在很多问题。我建议d您可以查看angularjs风格的最佳实践指南,并从中进行调整。