Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.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
Angularjs Angular.js用于轮询来自服务器的数据并每隔一段时间刷新_Angularjs - Fatal编程技术网

Angularjs Angular.js用于轮询来自服务器的数据并每隔一段时间刷新

Angularjs Angular.js用于轮询来自服务器的数据并每隔一段时间刷新,angularjs,Angularjs,我试图设置一个简单的应用程序来显示每个成员的最新消息 首先,它加载members数组,然后调用函数refreshMsg在数组中循环 在循环中,我设置了一个计时器 但是它根本不起作用。有人能给我一个提示吗 非常感谢 //显示每个成员的消息,并将计时器设置为refesh 函数refreshMsg(){ //循环遍历成员数组并设置计时器 对于(var i=0;i它不能正常工作的原因之一是,由于调用的异步性质,cur_成员将与响应消息不匹配,因为循环将向前移动。这样做的方法是创建另一个专门用于设置$t

我试图设置一个简单的应用程序来显示每个成员的最新消息

首先,它加载members数组,然后调用函数refreshMsg在数组中循环

在循环中,我设置了一个计时器

但是它根本不起作用。有人能给我一个提示吗

非常感谢

//显示每个成员的消息,并将计时器设置为refesh
函数refreshMsg(){
//循环遍历成员数组并设置计时器

对于(var i=0;i它不能正常工作的原因之一是,由于调用的异步性质,cur_成员将与响应消息不匹配,因为循环将向前移动。这样做的方法是创建另一个专门用于设置$timeout的方法,该方法将创建一个闭包。最好还是使用$interval

function refreshMsg(){
    //loop through members array and set a timer
    for(var i=0;i<$scope.members.length;i++){           
            var cur_member=$scope.members[i];
            var name = cur_member.name;
            setupRefresh(curr_member);

    }   
    function setupRefresh(member) {
            var url_getMsg = "api/getMsg/"+member.name;
            var timer = $interval( function(){
                    $http.get(url_getMsg).success(function(data){                           
                            member.msg=data;                                
                        }
                    );
                }, 3000);
    }
函数refreshMsg(){
//循环遍历成员数组并设置计时器

对于(var i=0;i)来说,自然的方法是使用。
function refreshMsg(){
    //loop through members array and set a timer
    for(var i=0;i<$scope.members.length;i++){           
            var cur_member=$scope.members[i];
            var name = cur_member.name;
            setupRefresh(curr_member);

    }   
    function setupRefresh(member) {
            var url_getMsg = "api/getMsg/"+member.name;
            var timer = $interval( function(){
                    $http.get(url_getMsg).success(function(data){                           
                            member.msg=data;                                
                        }
                    );
                }, 3000);
    }