我的路由器文件中有以下代码。
Router.onBeforeAction(mustBeSignedIn, {except: ['home', 'tests']})
Router.onBeforeAction('dataNotFound')
Router.onBeforeAction('loading')
Router.configure ->
loadingTemplate: 'loading'
notFoundTemplate: '404'
#define routes
Router.map ->
@route 'chat',
path: '/chat/:room_name'
waitOn: ->
[Meteor.subscribe('rooms'),
Meteor.subscribe('users'),
Meteor.subscribe('bookmarks', @params.room_name),
Meteor.subscribe('notifications'),
Meteor.subscribe('usersNoteCount'),
Meteor.subscribe('system_messages', @params.room_name)]
data: ->
Rooms.findOne({room_name: @params.room_name})
每当我遇到特定房间不存在的情况时,当数据为null
或undefined
时,页面仍会尝试呈现聊天页面。
我不知道如何解决这个问题,因为我读过的内容告诉我这是处理未找到页面的确切方法。
修改
通过上面的代码编辑,我仍然遇到一个问题,我要么永远加载,要么我摆脱了需要参数的两个订阅,我在加载时看到一个空白页面。我在这里做错了什么?
加载永远的问题我觉得我需要修复发布方面,但我仍然不完全确定如何解决它。
答案 0 :(得分:1)
根据docs的建议,您需要添加Router.onBeforeAction('dataNotFound')
。试一试,让我知道它是怎么回事。
答案 1 :(得分:1)