流星路由器与流星呼叫

时间:2015-03-21 23:39:05

标签: meteor iron-router

我无法在路由器上使用Meteor.call验证用户。只返回" undefined" PR

  

"提供调用结果的例外' verifyUserRole':   TypeError:undefined不是函数"

Router.route("/admin", function(){
    Meteor.call("verifyUserRole", function(error, result){
        if(result){
            this.render('adminDashboard');
            this.layout("adminLayout");
        } else {
            this.render('adminLogin');
        }
    })
});

 Meteor.methods({
   "verifyUserRole" : function(){
       if(this.userId){
       var user = Meteor.user();
       var role = user.profile.role;
       if(role == "admin"){
           return true;
       } else {
           Session.set("adminLoginError", "Restrict Area");
           return false;
       }
   }
}});

1 个答案:

答案 0 :(得分:2)

this的值是指你的内部函数而不是你的外部函数。请尝试以下方法:

Router.route("/admin", function(){
  var self = this;
  Meteor.call("verifyUserRole", function(error, result){
    if(result){
      self.render('adminDashboard');
      self.layout("adminLayout");
    } else {
      self.render('adminLogin');
    }
  });
});