2015-08-27 29 views
0

因此,我需要顯示集合的最新元素。我現在已經是這個函數來獲取最新的值:防止Meteor快速瀏覽集合中的所有元素以顯示最新的元素

balance_values: function(){ 
    return Balance.find({}, {sort: {date: -1}, limit: 1}); 
}, 

那麼的HTML是這樣的:

<body> 
{{#each balance_values}} 
    {{> balance}} 
    {{/each}} 
</body> 

<template name="balance"> 
    <h2>{{value}}</h2> 
</template> 

但有了這個,當我加載頁面時,我看到所有的舊的價值觀在那個集合中很快出現,直到出現最新值。我需要做些什麼來避免這種情況?

回答

0

使用findOne()返回所需的特定值。

<head> 
    <title>hi</title> 
</head> 

<body> 
    {{> hi}} 
</body> 

<template name="hi"> 
    <p>Hi, {{person.name}}</p> 
</template> 

JS:

if (Meteor.isClient) { 
    Template.hi.helpers({ 

    'person':function(){ 
     return Names.findOne(); 
    } 
    }); 
} 
+0

使用return Balance.findOne({},{sort:{date:-1},limit:1});在HTML上沒有顯示任何內容:/ –

+0

即使沒有HTML中的{{#each}}? –

+0

哦,我認爲你不需要這個限制:1部分。 findOne返回1. –

0

你的初始代碼返回的光標,並通過在該光標的每個值循環。您可以修改它以使用fetch()返回單個文檔或僅使用findOne()

balance_value: function(){ 
Balance.findOne({}, {sort: {date: -1}}); 
} 

<body> 
{{#with balance_value}} 
    {{> balance}} 
{{/with}} 
</body> 

<template name="balance"> 
    <h2>{{balance_value.value}}</h2> 
</template> 
相關問題