流星路由&渲染错误

时间:2015-06-18 21:49:12

标签: javascript meteor iron-router

在Meteor中发现一个奇怪的错误:

  

路线调度从未呈现过。您是否忘记在onBeforeAction中调用this.next()?

当我登录时没有任何内容呈现。相同的代码库正在我朋友的机器上运行,这是另一台MacBook。当他部署然后我拉他的代码并部署相同的代码并且它抛出相同的错误时,它的代码工作正常。你可以在这里看到http://streetscenestest.meteor.com/,router.js在下面。

我该如何解决这个问题?非常感谢任何帮助。

这是我的router.js:

Router.configure({
    layoutTemplate: 'layout',
});

Router.route('/', function() {
    this.render('home');
});

Router.route('/user/:_username', {
  name: 'user_profile',
  data: function() { return Meteor.user();} 
});

Router.route('/create', function() {
  this.render('createEvent');
});

Router.route('/insert', function() {
  this.render('insertEvent');
});

Router.route('/events/:name', {
  name: 'event',
  data: function() { return Events.findOne({name: this.params.name});}
});



Router.route('/useremail', function() {
    this.render('userEmail');
}, {
    name: 'userEmail'
});

Router._filters = {
  hasCompletedProfile: function() {
    if(!this.ready()) return;
    var user = Meteor.user();
    if (user && ! userProfileComplete(user)){
      this.render('userEmail');
    } else {
      this.next();
    } 
    this.next();
  }, 
}; 

filters = Router._filters;
Router.onBeforeAction(filters.hasCompletedProfile);

1 个答案:

答案 0 :(得分:0)

按照说明做,然后致电this.next()

Router._filters = {
  hasCompletedProfile: function() {
    if (this.ready()) {
      var user = Meteor.user();
      if (user && !userProfileComplete(user)){
        this.render('userEmail');
      }
    } 
    this.next();
  }, 
};