Эй, у меня есть система, где зарегистрированный пользователь может находиться в «битве», и как только они появятся, я хочу, чтобы пользователь был заблокирован на заданном шаблоне, пока битва не будет выполнена.Застрял при загрузке шаблона
У меня есть
#
# Currently active battle
#
Meteor.publish 'activeBattle', ->
character = Characters.findOne(userId: this.userId)
if this.userId and character
return Battles.find({active: true, $or: [{characterOneId: character._id}, {characterTwoId: character._id}]})
else
return
и в моем железо-маршрутизатор
Router.configure
layoutTemplate: 'layout'
loadingTemplate: 'loading'
waitOn: [
Meteor.subscribe('activeBattle')
]
...
redirectToActiveBattle = (pause) ->
battle = Battles.findOne(active: true)
if battle and Meteor.userId()
throwError('You have a battle in progress.')
Router.go('combat', {_id: battle._id})
pause()
...
Router.onBeforeAction(redirectToActiveBattle, except: ['login', 'logout', 'signup', 'combat'])
Это работает, когда пользователь вошел в систему и имеет характер, но если нет, то страница застревает на загрузке шаблон, вместо отображения экрана входа в систему
Попробуйте 'return []' вместо того, чтобы просто 'return' в' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''. – lbergnehr