我使用meteor构建了一个应用程序,在登录时遇到了一个问题。我有一个管理页面,只能由管理员访问。应用程序检查用户对象以查看isAdmin属性是否为真或假。如果为false,应用程序将呈现一个拒绝访问的页面。但是,当使用isAdmin为true的帐户转到管理页面时,拒绝访问页面在将我带到管理页面之前会短暂闪烁。有人能帮帮忙吗?我认为这个问题与Meteor的异步特性有关。下面是我的管理控制器,它具有路由逻辑:
adminController = RouteController.extend({
waitOn: function () {
Meteor.subscribe('adminView');
},
onBeforeAction: function () {
var currUserId = Meteor.userId();
var currUser = Meteor.users.findOne({_id: currUserId});
if (!currUser.isAdmin) {
this.render('accessDenied2');
} else {
this.next();
}
}
});发布于 2015-07-28 04:17:49
你可以在第一时间简单地检查是否有用处。然后,在用户数据可用之前,页面不会显示任何内容:
onBeforeAction: function () {
var currUser = Meteor.users.findOne(Meteor.userId());
if(currUser) {
if (!currUser.isAdmin) {
this.render('accessDenied2');
} else {
this.next();
}
}
}https://stackoverflow.com/questions/31662205
复制相似问题