2015-06-21 33 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

没问题!如果数量有限,您可以过度发布,应该可以正常工作。 –

相关问题