2014-02-25 43 views
1

我試圖使用流星製作jobboard應用程序。我能夠從數據庫獲取數據並將其顯示在模板中。但爲此,我正在檢索模板中的每個屬性。有沒有什麼方法可以一次顯示全部或部分屬性?使用Meteor&Handlebars顯示對象的所有屬性或選定屬性

Template.postSubmit.events({ 
    'click #submit': function(event){ 
     var job = {}; 
     job.jobtype = $('input[name ="jobtype"]:checked').val(); 
     job.category = $('input[name="category"]:checked').val(); 
     job.location = $('input[name="location"]').val(); 
     job.relocationAssistanceAvailable = $('input[name="relocationAssistanceAvailable"]')[0].checked; 
     job.description = $('#jobDescription').val(); 
     } 
}); 

//****Return data***// 
Template.postDisplay.posts = function(){ 
    return Jobs.find(); 
} 

//**My template where I am retriving data**// 
<template name="postDisplay"> 
    <div class="container"> 
     {{#each posts}} 
      <li>{{location}}</li> 
      <li>{{jobtype}}</li> 
      <li>{{category}}</li> 
      <li>.......</li> 
     {{/each}} 
    </div> 
</template> 

有人可以幫我要顯示一個系列,所有這些項目而不檢索具有與上述相同。 感謝提前.... !!!!

回答

1

如果不明確聲明每個文檔屬性和那裏/它是如何將要在HTML中呈現,你打算怎麼將它們和他們的風格?例如,如果你想要顯示每個屬性的不同行,或段落或列表項目,就像你在做什麼?

話雖這麼說,你可以得到完整性能的唯一途徑是作爲在http://docs.meteor.com/#ejson_stringify

Template.postDisplay.posts = function(){ 
    return _.each(Jobs.find().fetch(), function(postDocument) { 
    return EJSON.stringify(postDocument); 
    }); 
} 

<template name="postDisplay"> 
    <div class="container"> 
    {{#each posts}} 
     {{.}}<br/> 
    {{/each}} 
    </div> 
</template> 

EJSON描述也有一個分隔符選項,您可以破解實際上模仿li JSON表示元素

Template.postDisplay.posts = function(){ 
    return _.each(Jobs.find().fetch(), function(postDocument) { 
    return EJSON.stringify(postDocument, {'string': '</li><li>'}); 
    }); 
} 

<template name="postDisplay"> 
    <div class="container"> 
    {{#each posts}} 
     <li>{{.}}</li> 
    {{/each}} 
    </div> 
</template> 

旁註:你打印出<li>項目,但沒有在<ul>括起來,因此導致出現作爲一種罪過列表。實際上每個職位都是不同的列表。

+0

哦,你也許可以同時創建這裏https://github.com/meteor/meteor/wiki/Handlebars描述的定製車把幫手,並使用下劃線,然後將其放置在文檔遍歷鍵一個塊。這將比你的原始代碼更復雜,但如果你一定要堅持,我可以嘗試提供一個例子。 –

1

把手可以很容易地遍歷數組,正如你可能已經看到的{{each}}幫手。

你想要的是迭代對象鍵。爲此,您需要register a Handlebars helper

反正遲早你會希望以特定的方式來顯示一些領域,即使現在,他們似乎都喜歡字符串。例如,您可能希望將地點超鏈接到Google地圖網址,或者將類別鏈接到應用中的某個頁面,列出該類別中的所有作業。

這就是爲什麼遍歷對象鍵不常見的原因,我建議在<li>中包含每個字段並繼續使用您的應用程序。

PS: 「用不着喊.... !!!!」 :)