当使用meteor,angular以及软件包ui-router和alanning:roles开发应用程序时,我遇到了一个问题。一个组件内,我wan't一个特定的路线是只为记录下某些角色的用户可用的,所以我配置组件具有以下功能:Meteor.user()在使用角度UI路由器和alanning刷新时未定义:角色
function config($stateProvider) {
'ngInject';
$stateProvider.state('customers', {
url: '/customers',
template: '<customer-list></customer-list>',
resolve: {
currentUser($q) {
const userId = Meteor.userId();
if (userId && Roles.userIsInRole(userId, ['admin'])) {
console.log('customers.USER_REJECTED');
return $q.reject('AUTH_REQUIRED');
} else {
console.log('customers.USER_ALLOWED');
return $q.resolve();
}
}
}
})
}
它可以很好地,但是当我刷新页面,在这种情况下,用户遵循我实施的逻辑,即使他实际登录,也不被允许访问路由。如果然后我手动去/ customers,用户仍然不被允许进入,但是如果我转到其他唯一要求登录的网址,允许用户进入。我检查过,当我刷新页面时,Meteor.user()返回未定义的,所以我想这就是为什么检查角色返回false。我已经检查了这个社区提出的几个解决方案,但是我不能让他们做任何工作。你能帮我一下吗?
非常感谢。
它的工作,非常感谢队友,非常感谢! – vantesllar