生产模式下流星1.0中的铁路由器错误

时间:2014-12-06 09:57:28

标签: meteor iron-router

我已将流星应用程序从0.8升级到1.0。它在生产模式下升级到1.0之前工作正常。升级后我在生产模式中遇到错误。  正如我已经在home.js中定义了我的路线

Router.map(function() {
  this.route('home', {
    path: '/', 
    controller: 'Controller1'
  });
});

Controller1 = RouteController.extend({  
  layoutTemplate: 'Layout1',      
  onAfterAction: function() {
     setTimeout(function(){  $('#l').focus(); }, 600);
     this.next;
  }  
});

在开发模式下它工作正常,但是当我在生产模式下运行应用程序时,它正在给我找不到的错误路径。

请帮我摆脱它。提前谢谢。

2 个答案:

答案 0 :(得分:0)

我和@Moshikaro有同样的问题:)

查看我工作的Meteorpad。

http://meteorpad.com/pad/fRzpHPYMwRGPirWAD/Routing

<强> [编辑]

您的home.js应该是这样的

Controller1 = RouteController.extend({
  layoutTemplate: 'Layout1',
  name: 'home',
  onAfterAction: function() {
    Meteor.setTimeout(function() {
      $('#l').focus();
    }, 600);
  }
});

Router.map(function() {
  this.route('home', {
    path: '/',
    controller: 'Controller1'
  });
});

答案 1 :(得分:0)

迁移到meteor 1.0并因此铁:路由器1.0后,我不得不修改我的router.js文件。首先,我只在onRun()和onBeforeAction()钩子中包含this.next(),你不需要把它放在onAfterAction AFAIK上。

此外,我不再使用Router.map()了,我根据文档定义了所有路由:https://github.com/EventedMind/iron-router

所以尝试修改你的代码:

Router.route('home', function () {
  this.render('home');
}, {
  layoutTemplate: 'Layout1',
  path: '/',
  onAfterAction: function(){
    setTimeout(function(){  $('#l').focus(); }, 600);
  }
});

干杯,