创建动态模板和pathFor

时间:2014-09-30 12:04:02

标签: meteor iron-router spacebars

基本上我有我的" Home" -Template,显示两个具有不同内容的相同表格。 主页 - 模板上的表格仅显示最近的五个"订单"每张桌子。 单击表格标题(模板中的h2" showLatestOrders"),我想要路由到他们自己的模板,其中显示了完整的列表。

我知道我可以使用许多不同的模板。但这看起来非常难看。

我使用铁:路由器,我想知道我怎么能做到这一点" pathFor"在我的模板" showLatestOrders"动态,所以我只需要一个模板用于我的所有概览表。

模板:

<template name="home">
  <div class="container">
    <h1>Home</h1>
    <div>
      {{> showLatestOrders heading="Closed Orders" data=getLatestClosedOrders}}
    </div>
    <div>
      {{> showLatestOrders heading="Open Orders" data=getLatestOpenOrders}}
    </div>
  </div>
</template>

<template name="showLatestOrders">
  <h2><a href="{{pathFor 'orderOverview'}}">{{this.heading}}</a> 
  </h2>
  <div>
    <table >
      <thead>
        <tr>
          <th>Number</th>
          <th>Price</th>
        </tr>
      </thead>
      <tbody>
        {{#each data}}
          <tr>
            <td>{{number}}</td>
            <td>{{price}}</td>
          </tr>
        {{/each}}
      </tbody>
    </table>
  </div>
</template>

<template name="orderOverview">
  <div class="container">
      <h1>How to get a dynamic heading and collection here, based on where the route comes from?</h1>
        {{> reactiveTable collection=getOrders }}
  </div>
</template>

助手:

Template.home.getLatestOpenOrders = function () {
    var data = Orders.find({
        // get just open orders
    }, {
        limit: 5
    });
    return data;
}

Template.home.getLatestCompletedOrders = function () {
    var data = Orders.find({
        // get just completed orders
    }, {
        limit: 5
    });
    return data;
}

Template.orderOverview.getOrders = function() {
  return Orders.find({});
};

0 个答案:

没有答案