2015-07-12 62 views
0

問題:我有表TR有從表中的數據,當我在蒙戈插入元素,並張貼我的網頁上,加入的元素在表底動態添加元素到頁面頂部

Posts = new Mongo.Collection('posts'); 

    Meteor.publish('allPosts', function(){ 
     return Posts.find({}, { sort: { date: -1 }}); 
    }); 

    Meteor.subscribe("allPosts"); 

    Posts.insert({ 
     date: 1 
    }) 

    Posts.insert({ 
     date: 2 
    }) 

Posts.insert({ 
     date: 3 
    }) 
<table class=" table"> 
     {{#each posts}} 
      {{> postJobs}} 
     {{/each}} 
</table> 

<template name="postJobs"> 
    <tr class="smallInfo"> 
    <td>{{date}}</td> 
    </tr> 
</template> 

在DOM我有:

<table> 
     <tr> 
     <td>1</td> // must be 3 
     </tr> 
     <tr> 
     <td>2</td> // must be 2 
     </tr> 
<tr> 
     <td>3</td> // must be 1 
     </tr> 
    </table> 

所有我的最後一個刀片必須添加到我的頁面的頂部(表)

EDI T: 我在收集動態插入的問題(我知道-1格拉馬蒂克錯誤) 例:

Meteor.startup(function(){ 
    Meteor.setTimeout(function(){Test("10");}, 1000); 
    function Test(x) 
{ 
    Posts.insert({ 
    submitDate: moment().format() 
    }); 
} 
    Meteor.setTimeout(function(){Test("10");}, 10000); 

如果我排序submitDate它會顯示這樣的:

<tr><td>10-10-10</td></tr> // must be 10-10-20 
<tr><td>10-10-20</td></tr> // must be 10-10-10 

但是當我刷新我的頁面(F5)一切正常

<tr><td>10-10-20</td></tr> 
<tr><td>10-10-10</td></tr> 

回答

1

爲什麼你不排序降序?

{排序:{日期:-1}}

乾杯, 湯姆

UPDATE:

你可以找到在MeteorPad我準備了一個活生生的例子:

http://meteorpad.com/pad/Ba5DTe94NjFi3ZTPA/Playground_Flow-Router_Chat

你必須在客戶端進行排序,而不是在發佈方法中。

這就是爲什麼你第一次排序,但後來就像插入返回。

如果您在客戶端find()上進行排序,minimongo會在每個新文檔上執行此操作。

希望這對你有幫助。 Tom

+0

這是肯定的答案。如果您的排序結果相反:1,則嘗試-1並檢查結果。即使你不明白它是如何工作的 – ZuzEL

+0

這是工作時,我有收集與職位,但是當我嘗試插入元素收集和之後,自動發佈他們,他們不排序 –

+0

請看我更新的答案。乾杯湯姆 –