2014-07-01 33 views
0

我是很新,流星所以这可能是也可能不是正确的行为,虽然我不知道如何“修复”做什么,我希望的例子。流星 - 刷新后排序仅

我创建一个聊天室的应用程序,学习流星,当我添加消息到“聊天室”消息发送全部找到,但不排序,以正确的顺序,直到后,我刷新页面。这些消息全部存储在一个包含Date.parse()值的时间戳中。

router.js

Router.configure({ 
    layoutTemplate: 'layout', 
    notFoundTemplate: 'notFound', 
    loadingTemplate: 'loading' 
}); 

Router.map(function() { 
    this.route('home', { 
    path: '/', 
    template: 'home' 
    }); 

    this.route('room', { 
    path: '/room', 
    template: 'room', 
    waitOn:function(){ 
     return [Meteor.subscribe('rooms'), 
       Meteor.subscribe('messages')]; 
    }, 
    data: function() { 
     //console.log(Rooms.find().fetch()) 
     return {roomUsers: Rooms.find(), 
       userMessages: Messages.find({},{sort: {timestamp: 'desc'}})}; 
    }, 
    action: function(){ 
     if(this.ready()){ 
      this.render(); 
      console.log(Rooms.find({userId:Meteor.userId()}).count()); 
      if(Rooms.find({userId:Meteor.userId()}).count() < 1){ 
       console.log("This happens"); 
       Rooms.insert({username: Meteor.user().emails[0].address,roomId: 1,userId:Meteor.userId()}); 
      } 
     } 
    } 
    }); 
}); 

room.html

<template name="room"> 
    <div class="col-xs-10 chatMain"> 
     <div class="row"> 
      <div class="col-xs-12 chatContainer"> 
       {{#each userMessages}} 
        <div class="message"> 
         <div class="uname"> 
          {{username}}  
         </div> 
         <div class="text"> 
          {{message}} 
         </div> 
        </div> 
       {{/each}} 
      </div> 
      <div class="col-xs-12 colRem"> 
       <div class="chatbox"> 
        <form> 
         <textarea type="text" id="message"></textarea> 
         <button>Send!</button> 
        </form> 
       </div> 
      </div> 
     </div>   
    </div> 
    <div class="col-xs-2 chatUsers"> 
     <ul> 
      {{#each roomUsers}} 
       <li>{{username}}</li> 
      {{/each}} 
     </ul> 
    </div>  
</template> 

Before refresh 此图片刷新之前。 After refresh 这就是我想在每次发送消息时自动发生。

回答