Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Coffeescript 未找到Iron路由器数据未正常工作_Coffeescript_Meteor_Iron Router - Fatal编程技术网

Coffeescript 未找到Iron路由器数据未正常工作

Coffeescript 未找到Iron路由器数据未正常工作,coffeescript,meteor,iron-router,Coffeescript,Meteor,Iron Router,我的路由器文件中有以下代码 Router.onBeforeAction(mustBeSignedIn, {except: ['home', 'tests']}) Router.onBeforeAction('dataNotFound') Router.onBeforeAction('loading') Router.configure -> loadingTemplate: 'loading' notFoundTemplate: '404' #define routes Ro

我的路由器文件中有以下代码

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
未定义时,页面仍会尝试呈现聊天页面

我不知道如何着手解决这个问题,因为我读过的所有资料都告诉我,这是处理未找到页面的确切方法

编辑

通过上面的代码编辑,我仍然有一个问题,我要么永远加载,要么我去掉了两个需要参数的订阅,我看到加载的是一个空白页面。我做错了什么


我觉得我需要在发布端解决永久加载问题,但我仍然不完全确定如何解决它。

如中所建议的,您需要添加
Router.onBeforeAction('dataNotFound')
。试一试,让我知道它是如何运行的。

目前它似乎工作不正常


但这不是一个未找到的页面-即使房间名称不在数据库中,路径也完全有效,只是没有任何相关数据。问题是您需要处理数据上下文为空的情况,无论是在页面本身还是使用David Weldon提到的
dataNotFound
方法。我刚刚更新了代码以反映我仍然存在的问题。