【问题标题】:Meteor iron-route onBeforeActionMeteor Iron-Route onBeforeAction
【发布时间】:2015-03-29 22:38:14
【问题描述】:

我的 Meteor 应用程序中有一个简单的 Iron-router 路由,每当任何用户需要注销应用程序时我都会使用它,尽管每当我调用此路由时都会出现以下错误。有人可以告诉我我在做什么错/在这里失踪吗?谢谢

顺便说一句,Meteor.logout 不会返回任何错误

Router.route('/logout', function(){
  Meteor.logout(function(err){
      if(err){
        console.log('Error Logging out: '+ err);
      }
      this.redirect('home');
  });
});

错误:

 Route dispatch never rendered. Did you forget to call this.next() in an onBeforeAction?

Exception in delivering result of invoking 'logout': TypeError: undefined is not a function
    at http://localhost:3000/both/router/routes.js?8871acf5e06150f7af89862f68c245a05fe13db8:110:12
    at http://localhost:3000/packages/accounts-base.js?7c29db5c21a76726509bb6bb2a68a2b4b1ecf657:674:19

【问题讨论】:

    标签: meteor iron-router


    【解决方案1】:

    Meteor.logout 回调中的范围与 Router.route 回调中的范围不同。这就是为什么您需要将 Router.route 的作用域分配给变量 self,然后在 Meteor.logout 回调中使用它。

    Router.route('/logout', function(){
      var self = this;
      Meteor.logout(function(err){
          if(err){
            console.log('Error Logging out: '+ err);
          }
          self.redirect('home');
      });
    });
    

    【讨论】:

    • 谢谢库巴,不胜感激
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    • 2014-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多