Meteor 在生成所有dom之前触发模板渲染
我在Meteor的早期版本中使用了以下代码:Meteor 在生成所有dom之前触发模板渲染,meteor,Meteor,我在Meteor的早期版本中使用了以下代码: {{{#每个帖子} 一些文本 {{/每个}} Template.posts.rendered=function(){ this.findAll('post').doSomething(); } 模板.posts.helpers({ 员额:职能(){ 订阅('posts',this.\u id); return Posts.find({someId:this.\u id}); } }); 现在我使用Meteor 0.9.4,在生成每个渲染器中的d
{{{#每个帖子}
一些文本
{{/每个}}
Template.posts.rendered=function(){
this.findAll('post').doSomething();
}
模板.posts.helpers({
员额:职能(){
订阅('posts',this.\u id);
return Posts.find({someId:this.\u id});
}
});
现在我使用Meteor 0.9.4,在生成每个渲染器中的dom之前调用渲染器中的代码,因此
this.findAll('post').doSomething()
什么都不做。如何解决此问题?您遇到的问题是,当呈现回调触发时,并非所有数据都已加载到客户端
解决此问题的最简单方法可能是将每篇文章放在一个模板中,并使用该模板的呈现回调:
<template name='posts'>
{{# each posts }}
{{> post}}
{{/ each }}
</template>
<template name='post'>
<div class='post'>some text</div>
</template>
Template.post.rendered = function() {
this.find('.post').doSomething();
}
{{{#每个帖子}
{{>post}
{{/每个}}
一些文本
Template.post.rendered=函数(){
this.find('.post').doSomething();
}
使用此代码,您将100%确保帖子已显示,并且作为奖励,如果有人在页面上时添加和删除新帖子,它将起作用。David,您说得对。我在寻找解决方案时没有发现这一点。