2014-07-01 40 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 這就是我想在每次發送消息時自動發生。

回答