Meteor Iron-Router用户订阅订阅速度不够快?加载上一个路由的订阅数据

时间:2014-07-04 03:37:54

标签: meteor iron-router

我的路由器中有这个:

Router.configure
  layoutTemplate: 'layout'
  loadingTemplate: 'loading'

Router.map () ->
  @route 'home',
    path: '/'
    waitOn: ->
      Meteor.subscribe('users')
      Meteor.subscribe('instruments')
      Meteor.subscribe('instrumentList')
    data: ->
      Meteor.users.find().fetch()

  @route 'edit_form',
    path: 'edit_profile'
    waitOn: ->
      Meteor.subscribe('user', Meteor.userId)
      Meteor.subscribe('users')
      Meteor.subscribe('instruments')
      Meteor.subscribe('instrumentList')
    data: ->
      Meteor.user()

Router.onBeforeAction("loading")

home是一个GoogleMap,显示了系统中所有用户的丢弃引脚。

home需要订阅整个users集合。

edit_form是当前登录用户的表单。

edit_form只需订阅current_user文档。

  1. 当我第一次进入home时,地图会显示每个用户的所有引脚。
  2. 然后我导航到edit_form,它会显示当前用户的所有信息。
  3. 然后我直接返回地图,它只显示当前用户的图钉。
  4. 这里发生了什么?为什么步骤3中的home路由现在只显示当前用户的引脚,即使我明确告诉waitOn订阅整个users集合并使用来自{的数据{1}},它应该获取集合中的每个用户吗?

1 个答案:

答案 0 :(得分:2)

我认为你编写waitOn的方式只会等到最后一件事(coffeescript会从函数中返回最后一件事)。所以在你的情况下它只会等待Meteor.subscribe('instrumentList')

返回数组中的所有订阅。