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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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:make layout.html wait订阅?_Meteor_Handlebars.js_Iron Router - Fatal编程技术网

Meteor:make layout.html wait订阅?

Meteor:make layout.html wait订阅?,meteor,handlebars.js,iron-router,Meteor,Handlebars.js,Iron Router,我正在尝试创建一个聊天(Template.chatlist)功能,该功能可以粘贴到页面底部(类似于Facebook上的聊天功能,当用户浏览到网站的其他部分时,后台页面会发生变化,而聊天框会保持不变)。因此,我将聊天框放在布局页面上的一个把手模板中(因此它不是从{{>yield}模板呈现的)。问题是,它没有在加载之前等待订阅(没有到layout.html的路由,因此我无法在路由器中设置waitOn),因此它无法从我的用户集合中提取信息 我需要知道,如何使layout.html页面在订阅正确完成后等

我正在尝试创建一个聊天(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() {
      // ...
    }
  });
});