METEOR - 将数据从父模板传递到子模板

时间:2017-02-16 10:14:02

标签: javascript mongodb templates meteor

我正在尝试在meteorJS中创建一个包含两个集合的双向表,我可以将父模板中的一个集合的名称传递给子模板。

项目是x轴,项目2是y轴。

我的收藏:

db.Item.insert({
    "name" : "hello",
    "param1" : "ok",
    "param2" : "ok",
    "parma3" : "na"
});

db.Item.insert({
    "name" : "bonjour",
    "param1" : "na",
    "param2" : "ok",
    "parma3" : "ok"
});

db.Item2.insert({
    "id" : "01",
    "nameIt2" : "nameS"
});

db.Item2.insert({
    "id" : "02",
    "nameIt2" : "name"
});

我的代码HTML:

 <template name="home">
   <table class="table maintable">
      <!--Entête du tableau (première ligne)-->
      <tbody>
        {{#each event}}
          {{> eventItem}}
        {{/each}}
      </tbody>
   </table>
</template>


<template name="eventItem">
  <tr>
    {{#each event2}}
      {{> eventItem2}}
    {{/each}}
  </tr>
</template>

<template name="eventItem2">
  <td>
    {{nameItem}}
  </td>
</template>

我的JS代码:

Template.home.helpers({
event() {
    return Item.find();
  },
});

Template.eventItem.helpers({
event2() {
    return Item2.find();
  },
});

Template.eventItem.helpers({
event2() {
    return Item2.find();
  },
});

Template.eventItem2.helpers({
nameItem() {
    return **Name field of my collection Item**
  },
});

有没有办法将父项模板 eventItem 名称传递给子模板 eventItem2

2 个答案:

答案 0 :(得分:1)

是的,您可以使用Template.parentData访问父模板的数据:

Template.eventItem2.helpers({
  nameItem() {
    return Template.parentData().name;
  },
});

答案 1 :(得分:1)

您只需在您的子模板中设置值,然后传递数据。

您可以传递这样的数据:

<template name="home">
   <table class="table maintable">
      <!--Entête du tableau (première ligne)-->
      <tbody>
        {{#each event}}
          {{> eventItem childEvent=this}}
        {{/each}}
      </tbody>
   </table>
</template>


<template name="eventItem">
  <tr>
    {{#each childEvent}}
      {{> eventItem2 nameItem=this}}
    {{/each}}
  </tr>
</template>

<template name="eventItem2">
  <td>
    {{nameItem}}
  </td>
</template>

*注意:这表示#each

中的当前值