【问题标题】:Meteor: How can I use Spacebars to create a tree list with data from two collections?Meteor:如何使用空格键创建一个包含来自两个集合的数据的树状列表?
【发布时间】:2016-08-17 05:33:23
【问题描述】:

假设我有两个系列。一个用于Categories,一个用于Items

类别看起来像这样...

{
    _id: "1",
    catName: "Category One"
}
{
    _id: "2",
    catName: "Category Two"
}

物品看起来像这样......

{
    _id: "12",
    itemName: "Item One",
    category: "1"
}
{
    _id: "13",
    itemName: "Item Two"
    category: "2"
}
{
    _id: "14",
    itemName: "Item Three"
    category: "1"
}

如何使用空格键在每个类别下创建一个包含适当项目的树状列表?

例如,像这样的东西......

HTML

<div class="panel-group">
   <div class="panel panel-default">

   {{#each category}}

     <div class="panel-heading">
       <a data-toggle="collapse" href="#collapse1">{{catName}}</a>
     </div>

     {{#if itemsInThisCategory}}
       <div id="collapse1" class="panel-collapse collapse">

         {{#each item}}
           <div class="panel-body">{{itemName}}</div>
         {{/each}}

       </div>
     {{/if}}

   {{/each}}

   </div>
</div>

帮手将如何做呢?或者甚至可以这样做吗?因为我认为我试图在同一个语句中访问不同的数据上下文,我不确定这是否可行。

谢谢

【问题讨论】:

    标签: javascript meteor spacebars


    【解决方案1】:

    助手:

    Template.myTemplate.helpers({
      categories: function() {
        return Categories.find({});
      },
      hasItemsInCategory: function(category) {
        return Items.find({
          category: category
        }).count();
      },
      getItemByCategory: function(category) {
        return Items.find({
          category: category
        });
      }
    });
    

    模板:

    <template name="myTemplate">
      <div class="panel-group">
        <div class="panel panel-default">
          {{#each categories}}
            <div class="panel-heading"><a data-toggle="collapse" href="#collapse1">{{catName}}</a>
              {{#if hasItemsInCategory _id}}
                <div id="collapse1" class="panel-collapse collapse">
                  {{#each getItemByCategory _id}}
                    <div class="panel-body">{{itemName}}</div>
                  {{/each}}
                </div>
              {{/if}}
            </div>
          {{/each}}
        </div>
      </div>
    </template>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-08
      • 1970-01-01
      • 2023-01-21
      • 2021-09-23
      相关资源
      最近更新 更多