Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.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
Meteor 当进入深度链路时,铁路由器路由的执行会发生什么变化?_Meteor_Iron Router - Fatal编程技术网

Meteor 当进入深度链路时,铁路由器路由的执行会发生什么变化?

Meteor 当进入深度链路时,铁路由器路由的执行会发生什么变化?,meteor,iron-router,Meteor,Iron Router,我有一个小流星应用程序与铁路由器。以下是我的routes.js,可用于客户端和服务器: Router.configure({ layoutTemplate: 'defaultLayout', loadingTemplate: 'loading' }); // Map individual routes Router.map(function() { this.route('comicCreate', { path: '/comic/create' });

我有一个小流星应用程序与铁路由器。以下是我的routes.js,可用于客户端和服务器:

Router.configure({
  layoutTemplate: 'defaultLayout',
  loadingTemplate: 'loading'
});

// Map individual routes    
Router.map(function() {
  this.route('comicCreate', {
    path: '/comic/create'
  });

  this.route('comicDetails', {
    onBeforeAction: function () {
      window.scrollTo(0, 0);
    },
    path: '/comic/:_id',
    layoutTemplate: 'youtubeLayout',
    data: function() { return Comics.findOne(this.params._id); }
  });

  this.route('frontPage', {
    path: '/',
    layoutTemplate: 'frontPageLayout'
  });

  this.route('notFound', {
    path: '*',
    where: 'server',
    action: function() {
      this.response.statusCode = 404;
      this.response.end('Not Found!');
    }
  });    
});
我需要将漫画集文档中的一些字段输入到包装Youtube的IFrame API的包中,我正在通过呈现函数执行此操作:

Template.comicDetails.rendered = function() {
  var yt = new YTBackground();

  if (this.data)
  {
    yt.startPlayer(document.getElementById('wrap'), {
      videoIds: this.data.youtubeIds,
      muteButtonClass: 'volume-mute',
      volumeDownButtonClass: 'volume-down',
      volumeUpButtonClass: 'volume-up'
    });
  }    
};
当我首先转到localhost:3000/然后单击设置为“{{pathFor'comicDetails'\u id}”的链接时,这非常有效。然而,如果我直接转到localhost:3000/comic/somevalidid,它不会,尽管事实上这两条路径最终都指向同一个url

原因似乎是,当我直接转到深层链接时,“this.data”在执行呈现函数期间未定义。模板本身显示得很好(数据正确地替换了我模板中的空格{field}}标记),但是当呈现回调触发时,“this”上下文中没有数据


我有什么地方做错了吗?

试着在Meteor.startup中声明路线。。。不确定这是否是问题所在,但值得一试