好的,这是我发布数据的服务器代码,如果当前用户有权查看它
# server publish
Meteor.publish 'clients', (locationId) ->
if SecurityContext.canAccessLocation @userId, locationId
@ready()
@error new Meteor.Error('unauthorized', 'You do not have access to this location')
return
ClientManagement.Collections.Clients.find({ locationId: locationId }, { sort: firstName: 1 })
这是我的铁路由器控制器的一部分,我等待我的数据返回,但我的回调是onReady或onError永远不会被调用
# iron route controller
waitOn: ->
Meteor.subscribe 'clients', Session.get 'selectedLocationId',
onReady: ->
debugger
onError: (error) ->
debugger
AppHelper.logger.error error.reason
我在这里做错了什么?有什么建议?我也尝试过类似铁路由器之类的东西,只是为了仔细检查它与路由器无关。
我是在客户端做到的:
Meteor.startup () ->
Tracker.autorun ->
Meteor.subscribe 'clients', Session.get 'selectedLocationId',
onReady: ->
debugger
onError: (error) ->
debugger
AppHelper.logger.error error.reason
再一次,我的回调从未被调用过......任何想法?
提前致谢!
答案 0 :(得分:2)
这看起来像是一个coffeescript错误。转换器不知道您是否要将回调对象作为参数包含在subscribe
或get
中。它选择后者,但你想要前者。尝试这样的事情:
Meteor.subscribe 'clients', Session.get('selectedLocationId'),
onReady: ->
console.log 'ready!'
onError: ->
console.log 'error!'