如何在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'
}
],
...
答案 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
使用帖子属性。