我想用meteor创建复杂的博客页面。我有一个带有两个子模板的模板,如下所示:
<template name="singlePostPage">
{{> post }}
{{#each comments}}
{{> comment}}
{{/each}}
</template>
我想在加载页面时加载发布,并在完成后加载后加载评论。 (例如在整个页面加载后加载的disqus注释系统)
请指导我如何执行此操作以及哪些软件包可能对此方案有用?
答案 0 :(得分:1)
您可以在呈现帖子模板时设置会话变量或反应变量,然后使用句柄{{#if}}
根据该变量的值显示注释。像下面这样的东西应该有效。
.js文件(会话)
Template.post.onRendered(function() {
Session.set("postRendered", true);
});
Template.singlePostPage.helpers({
postRendered: function() {
return Session.get("postRendered");
}
});
首次加载postRendered
模板时,只需确保singlePostPage
会话变量设置为false或null。如果您想使用反应变量:
添加此包:
meteor add reactive-var
并使用此.js代码:
var postRendered = new ReactiveVar(false);
Template.post.onRendered(function() {
postRendered.set(true);
});
Template.singlePostPage.helpers({
postRendered: function() {
return postRendered.get();
}
});
对于这两个示例,您可以使用此.html文件
<template name="singlePostPage">
{{> post }}
{{#if postRendered}}
{{#each comments}}
{{> comment}}
{{/each}}
{{/if}}
</template>