我正在我的离子应用中实现消息传递功能。在我的收件箱中,我GET请求一个api,它返回一个具有如下数据结构的数组:
[{id:1, from_user:1, to_user:2, message:"hello", has_been_read:false}]
当我读取消息时,has_been_read值将变为true。问题是,当我回到收件箱并且页面重新加载时,项目消失
$scope.insertProperty=function(){
for(var i=0;i<$scope.users.length;i++){
for(var j=0;j<$scope.users.length;j++){
if($scope.users[i].id==$scope.messages[j].from_user)
$scope.users[i].message=$scope.messages[j].message;
}
}
}
//$scope.users0= [];
$scope.users = [];
$localStorage.messages = [];
var getUser = function(id) {
UserService.GetUserById(id, $localStorage.CurrentUser.auth_token)
.success(function (data) {
data = angular.fromJson(data);
$scope.users.push(data);
$scope.insertProperty();
$localStorage.messages.push(data);
$scope.$broadcast('scroll.refreshComplete')
console.log(angular.toJson($localStorage.messages))
}).error(function(error, status) {
alert(status);
console.log(error);
});
};
$scope.GetMyMessages = function(){
UserService.GetMyMessages($localStorage.CurrentUser.id, $localStorage.CurrentUser.auth_token, -1, -1)
.success(function (data) {
console.log(data);
data = angular.fromJson(data);
$scope.messages = data;
angular.forEach(data, function(user){
getUser(user.from_user)
});
}).
error(function(error, status) {
alert(status);
console.log(error);
});
}
$scope.GetMyMessages();
})
在我的代码中我调用我的消息服务,我传递-1 / -1,它在列表中获取ALL(它们是开始/开始索引)..然后我继承以获取用户ID ...并合并2个数组所以我可以通过它的消息来关联用户。
GetMessages服务返回具有唯一from_user的所有has_been_read = false消息。数据结构如下所示:[{id:1,from_user:1,to_user:2,message:“hello”,has_been_read:false}]
然后GetUserById获取每个from_user的信息数据结构如下:[{id:1,username:“foo”}]
insertProperty方法将用户和消息放在一起