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