0

在其中一个控制器中,我试图列出所有在线用户及其最后一条消息。但是在运行下面的代码时浏览器没有响应。

在 app.js 中

angular.module('jaarvis').controller('OnlineUsersCtrl', ['$scope', '$meteor', function ($scope, $meteor) {
  $scope.$meteorSubscribe('users');
  $scope.$meteorSubscribe('chats');
  var query = {};
  query['status.online'] = true;
  var online = $meteor.collection(function(){
    return Meteor.users.find(query, {fields: {'_id':1, 'profile.name':1, 'status.online':1}});
  });
  $scope.onlineusers = online;

  $scope.getLastMessage = function(userId) {
   var query = {};
   query['uid'] = userId;
   var lastMessage = $meteor.collection(function(){
      return Chats.find({'uid':userId}, {fields: {'content':1}}, {sort: {'_id': -1}, limit: 1});
   });
   return lastMessage;
  };
}]);

在 HTML 中

<div class="list">

                <a class="item item-avatar" href="/onetoonechat/{{onlineuser._id}}" ng-repeat="onlineuser in onlineusers">
                  <img src="venkman.jpg">
                  <h2>{{onlineuser.profile.name}}</h2>
                  <p>{{ getLastMessage(onlineuser._id) }}</p>
                </a>
              </div>

如果我的代码中有任何错误,请更正或提供替代解决方案。

4

0 回答 0