-2
我有用戶列表,我將顯示這個用戶。用戶有未消息的消息,並沒有寫餐單,我想在http.get主請求中獲取需要的信息,但我的問題是它異步工作,所以unreadmessage和week值不會改變。我該怎麼做。在此先感謝
$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");
}
)
你的問題是提高非常不清楚。請嘗試改寫。另見[問]。我沒有仔細閱讀過你的代碼,因爲它似乎只是你組件中所有東西的轉儲,而不是描述你所面臨問題的[mcve]。 – Igor
$ http.get之後的函數中的代碼將在$ http.get返回之前執行。 – James
你'重新使用角度,所以如果你改變了你的範圍中定義的變量,所以如果你改變你的用戶內容,這個改變在任何地方都被提出。我不是你的問題 –