访问流星模板中的父数据上下文

时间:2015-03-05 12:08:18

标签: javascript meteor

如何在Meteor中访问父模板的数据。在下面的示例中,我想从<template name="post">访问<template name="photoGallery">模板数据。这就是我正在做的但是它不起作用:

<template name="post">
  <div class="well">

    <p class="text-left text-muted"><span class="glyphicon glyphicon-time"></span> <i>{{post.date}}</i></p>

    <div class="post-text">
      <p>{{post.text}}</p>       
    </div>

    <div class="photo-gallery">
      {{> photoGallery}}
    </div>

    <hr>
    <div class="like-post text-right">
      <button>        
        <span class="glyphicon glyphicon-heart liked"></span>
        {{post.likeCount}}
      </button>      
    </div>

  </div>
</template>

<template name="photoGallery">
  {{#each post.photos}}  
    <img src="{{src}}"> //this does not work
  {{/each}}
</template>

这是我的帖子模板的js文件:

Template.post.helpers({  


    post: {
        text: 'Teks, surat, audio we video. Postda tekst bolanda test uchin ulanyljak yazgy. Shu yazgynyn maksimum simwol sany yuz kyrk simwoldan gechmeli dal. Eger gechen yagdayynda onda kop nokatlar goyulmaly.',
        date: '31-12-205 23:59',
        likeCount: 13,
        photos: [      
          {
            src: 'http://cs625423.vk.me/v625423655/899b/W9agrD2UimQ.jpg',
            src_small: 'http://cs625423.vk.me/v625423655/899a/zkipjxINKM8.jpg',
            src_big: 'http://cs625423.vk.me/v625423655/899c/uL2EOORDYV4.jpg'        
          },
          {
            src: 'http://cs625423.vk.me/v625423655/899b/W9agrD2UimQ.jpg',
            src_small: 'http://cs625423.vk.me/v625423655/899c/uL2EOORDYV4.jpg',
            src_big: 'http://cs625423.vk.me/v625423655/899a/zkipjxINKM8.jpg'
          },
          {
            src: 'http://cs623220.vk.me/v623220655/1e3be/uj7M9HwtkbA.jpg',
            src_small: 'http://cs623220.vk.me/v623220655/1e3bd/hkoSv-zpb4Y.jpg',
            src_big: 'http://cs623220.vk.me/v623220655/1e3bf/Zb3sQa0aX0U.jpg'
          },
          {
            src: 'http://cs623216.vk.me/v623216655/16c18/3mXm6-EZ-aM.jpg',
            src_small: 'http://cs623216.vk.me/v623216655/16c17/RtKyVS-D7GA.jpg',
            src_big: 'http://cs623216.vk.me/v623216655/16c19/_jy0aZu2GEA.jpg'
          }
        ],
    ...

4 个答案:

答案 0 :(得分:2)

期望的结果是子模板访问父助手的结果。您可以通过设置photoGallery模板的上下文来完成此操作:

{{> photoGallery post}}

现在,在photoGallery内,上下文为post,因此我们可以迭代照片:

<template name="photoGallery">
  {{#each photos}}
    <img src="{{src}}">
  {{/each}}
</template>

答案 1 :(得分:0)

我认为parentData就是你所追求的目标。

答案 2 :(得分:0)

这就是我设法解决问题的方法。我刚将post.photos变量传递给子模板。 在<template name="post">

...
<div class="photo-gallery">
  {{> photoGallery photos=post.photos}}
</div>
...

<template name="photoGallery">

{{#each photos}}
  <img src="{{src}}">
{{/each}}

答案 3 :(得分:0)

您可以使用../

访问父数据

<template name="photoGallery"> {{#each ../post.photos}} <img src="{{src}}"> {{/each}} </template>

如果不起作用,您可以尝试:

<div class="photo-gallery">
  {{#with post}}
    {{> photoGallery}}
  {{/with}}
</div>

,您的照片库模板将如下所示:

<template name="photoGallery"> {{#each this.photos}} <img src="{{src}}"> {{/each}} </template>

如果您使用#with帮助,则照片库模板将获得post上下文,您可以通过this使用帖子属性。

相关问题