Meteor:make layout.html wait订阅?
我正在尝试创建一个聊天(Template.chatlist)功能,该功能可以粘贴到页面底部(类似于Facebook上的聊天功能,当用户浏览到网站的其他部分时,后台页面会发生变化,而聊天框会保持不变)。因此,我将聊天框放在布局页面上的一个把手模板中(因此它不是从{{>yield}模板呈现的)。问题是,它没有在加载之前等待订阅(没有到layout.html的路由,因此我无法在路由器中设置waitOn),因此它无法从我的用户集合中提取信息 我需要知道,如何使layout.html页面在订阅正确完成后等待加载?当然,我可以将聊天模板放在每个页面的收益模板中,让它正确等待,但是有没有一种方法可以让我不必这样做呢Meteor:make layout.html wait订阅?,meteor,handlebars.js,iron-router,Meteor,Handlebars.js,Iron Router,我正在尝试创建一个聊天(Template.chatlist)功能,该功能可以粘贴到页面底部(类似于Facebook上的聊天功能,当用户浏览到网站的其他部分时,后台页面会发生变化,而聊天框会保持不变)。因此,我将聊天框放在布局页面上的一个把手模板中(因此它不是从{{>yield}模板呈现的)。问题是,它没有在加载之前等待订阅(没有到layout.html的路由,因此我无法在路由器中设置waitOn),因此它无法从我的用户集合中提取信息 我需要知道,如何使layout.html页面在订阅正确完成后等
<main class="main container" id="central">
{{> yield}}
{{> chatlist}}
</main>
{{>产量}
{{>聊天列表}
这就是layout.html现在的样子。聊天列表模板没有等待任何数据订阅,因为它不在收益部分(因此不受路由器控制)
我也做了Template.chatlist.helpers
,并将用户数据注册到了一个helper中,但由于某种原因,当我通过控制台记录Users对其进行测试时。count
控制台返回为零。使用区域:
<template name="layout">
<aside>
{{> yield region='aside'}}
</aside>
<div>
{{> yield}}
</div>
<footer>
{{> yield region='footer'}}
</footer>
</template>
Router.map(function () {
this.route('home', {
path: '/',
template: 'myHomeTemplate',
layoutTemplate: 'layout',
yieldTemplates: {
'myAsideTemplate': {to: 'aside'},
'myFooter': {to: 'footer'}
},
waitOn: function() {
// ...
}
});
});