我的路由器中有这个:
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
文档。
home
时,地图会显示每个用户的所有引脚。edit_form
,它会显示当前用户的所有信息。这里发生了什么?为什么步骤3中的home
路由现在只显示当前用户的引脚,即使我明确告诉waitOn
订阅整个users
集合并使用来自{的数据{1}},它应该获取集合中的每个用户吗?
答案 0 :(得分:2)
我认为你编写waitOn
的方式只会等到最后一件事(coffeescript会从函数中返回最后一件事)。所以在你的情况下它只会等待Meteor.subscribe('instrumentList')
返回数组中的所有订阅。