2014-12-07 106 views
0

因此,我是Meteor的新手,並且一直在玩弄它,但在轉移到Mongo時遇到了一些問題。在MongoDB中使用find()時選擇對象的屬性/流星

下面是一個簡單的例子,我已經將一些文檔插入到我的集合中,但似乎無法正確提取屬性。

這裏是我的代碼(和我的結果VS預期的結果是它下面)

vizart.js

ContentPieces = new Mongo.Collection("content"); 

if (Meteor.isClient) { 

    Template.loggedInDash.helpers({ 
    content: function() { 
     return ContentPieces.find({}); 
    } 

    }); 

} 

vizart.html

<template name="loggedInDash"> 

    {{#if currentUser}} 

     <p>Here is the content you've created</p> 
     <ul> 
      {{#each content}} 
       <li>{{content}}</li> 
      {{/each}} 
     </ul> 

    {{/if}} 

</template> 

結果(剛剛從應用程序粘貼我ñ我的瀏覽器)

這裏是你創建的內容

  • 的翻譯:
  • 的翻譯:
  • 的翻譯:

預計

正如你所看到的,我不是100%確定的如何拉出屬性。例如,每個文檔都有一個name屬性,我想將它吐出列表中。有關如何從content集合中選擇name屬性的任何幫助或指導?

在此先感謝!

回答

4

流星模板語言(spacebars)的靈感來源於handlebars。我建議看看這兩套文檔,但handlebars文檔將幫助您掌握基本語法。

在你的榜樣,如果ContentPieces每個文檔都有一個name,那麼你可以把它添加到您的列表如下:

<ul> 
    {{#each content}} 
    <li>{{name}}</li> 
    {{/each}} 
</ul> 

我也建議在看看this post更好地瞭解模板數據上下文。

+0

字段名感謝您的幫助和進一步閱讀! – user2656127 2014-12-07 21:02:32

1

在你的過程中向您顯示整個文檔,如果你只是想顯示屬性的名稱,你可以通過

if (Meteor.isClient) { 
Template.loggedInDash.helpers({ 
content: function() { 
    var name=ContentPieces.find({}).name; 
    if(name) 
    return name; 
    } 
    }); 

做到這一點,您可以只傳遞要顯示

相關問題