Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Meteor 在生成所有dom之前触发模板渲染_Meteor - Fatal编程技术网

Meteor 在生成所有dom之前触发模板渲染

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

我在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,在生成每个渲染器中的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,您说得对。我在寻找解决方案时没有发现这一点。