[英]For loop causing issue on Angularjs app in a mean stack
我遇到一個奇怪的問題,當我添加一行代碼時,刷新后該應用程序無法正常工作這是我的控制器:
myApp.controller('messengernew', ['$scope', '$resource', 'AuthService', '$location', '$http', 'User','Message', function ($scope, $resource, AuthService, $location, $http, User, Message) {
$scope.users=[];
$scope.messages=[];
User.getAllUsers().then(function(users) {
$scope.users = users;
for (var i = 0; i < users.length; i++) {
(function(user){
console.log('username ' + user.username);
// User.incrementReputation(user.username);
Message.getUnreadMessages(user.username, localStorage.getItem("token")).then(function(messages) {
$scope.messages.push(messages);
})
})(users[i]);
}
})
$scope.username=localStorage.getItem("token");
$scope.gotomessages = function (text) {
var contact =text;
localStorage.setItem("contact", contact);
$location.path('/messenger');
};
}]);
如果我取消注釋User.incrementReputation(user.username)
,則刷新后該應用程序無法正常工作,您可以幫忙嗎?
函數crementReputation在服務中,下面是代碼:
function incrementReputation(username) {
getUser(username).then(function(users) {
(function(user){
$http.put('/api/incrementReputation', {}, {params:{id:user._id}});
})(users[0]);
})
}
並且服務中的功能getUser也與服務相同(與crementReputation相同):
function getUser(username) {
var Users = $resource('/api/users', {},{
query: {method: 'get', isArray: true}
});
return Users.query({username:username}).$promise
}
使用給定的信息在黑暗中射擊。 可能是getUser函數中的分號問題。
return Users.query({username:username}).$promise;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.