2015-06-21 63 views
0

所以就在今天我開始使用Meteor(我自己是一位嚴格的前端設計師)嘗試將我的最新作品之一轉換爲構建良好的動態Web應用程序。在我的應用程序中設置分類系統

該項目的大部分基於一個論壇結構,所以我試圖在類別,論壇和線程之間建立一個層次結構。我目前的做法是分別收集一個用於論壇/類別,另一個用於線程,然後是另一個用於帖子。

我目前的困境是,我有一個問題(根本上),我將如何打電話給一個類別下的所有論壇。我目前的結構設置在每個論壇有一個「父母」設置爲他們去的類別的ID,但我不知道我將如何去讓他們顯示正確組織。

我目前的做法是有一個{{>Categories}}模板,然後該模板內是:

<template name="categories"> 
    {{#each cname}} 
    <div class="category"> 
     <div class="title">{{name}}</div> 
     {{> forums}} 
    </div> 
    {{/each}} 
</template> 

我用於顯示所有類別的邏輯(類型:0將它定義爲一個類別) :

Template.categories.helpers({ 
    cname: function() { 
     return Forums.find({type: 0}) 
    } 
}); 

現在{{>forums}}幫手,我只是完全卡住。這裏是模板看起來的樣子:

<template name="forums"> 
    {{#each fname}} 
    <div class="forum"> 
     <div class="ficon"><i class="{{ficon}}"></i></div> 
     <div class="fname"><a href="forum.php">{{name}}</a><br><div class="fdesc">{{description}}</div></div> 
     <div class="fstats">{{threads}}<br><span class="sub">Threads</span></div> 
     <div class="fstats">{{posts}}<br><span class="sub">Posts</span></div> 
    </div> 
    {{/each}} 
</template> 

我可以得到它顯示所有的論壇,但我仍然困惑,我將如何讓特定的論壇,只有在特定的類別列表顯示。

如果有人願意幫助那會很棒!

回答

1

最簡單的方法是反規範化,並在您的後期集合中包含「類別」字段。如果你不想這樣做,你需要使用某種連接 - 一個包含兩個集合數據的數據庫查詢。 有跡象表明,在很大程度上取決於你希望你的應用程序工作的反應性和非反應性連接,以及一些其他的考慮,但有豐富的信息在這裏:

https://www.discovermeteor.com/blog/reactive-joins-in-meteor/

這個問題可能是有點廣泛,但希望這會讓你開始:)

編輯:在再次閱讀問題時,我看到你想創建一個層次結構,因此額外的收藏。 Mongo對於關係數據來說真的不是很好,從這樣的三個集合開始肯定會讓你更難。 FWIW,我強烈建議反規範化在每篇文章中包含類別和論壇信息。

+0

這篇文章絕對似乎是朝着我想去的方向前進,謝謝參考! –

+0

沒問題!如果數量有限,您可以過度發佈,應該可以正常工作。 –

相關問題