我无法在路由器上使用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;
}
}
}});
答案 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');
}
});
});