如何验证meteor帐户模块的用户集合中的特定字段?
假设下一个代码:
$stateProvider.state('myState', {
resolve:{
function($q) {
if(Meteor.userId()){
return $q.resolve();
}
else {
retrun $q.reject();
}
}
}
})
在解析中可以使用Meteor.userId()函数从用户检索_id,但我不能以相同的方式使用Meteor.user()函数。如何从解决方案中检索该集合中的自定义数据
答案 0 :(得分:0)
这有点棘手,但在您所在州的代码中可以解决:
resolve: {
currentUser: ($q) => {
var deferred = $q.defer();
Meteor.autorun(function () {
if (!Meteor.loggingIn()) {
if (Meteor.user() == null) {
deferred.reject('AUTH_REQUIRED');
} else {
deferred.resolve(Meteor.user());
}
}
});
return deferred.promise;
}
}
这将确保在加载Meteor.user()记录之前路由不会解析,如果未登录,则拒绝路由。我花了一段时间才找到这个,但它现在是一个守护者:)
答案 1 :(得分:0)
根据要点,以下代码是我的助手的样子
this.helpers({
member: () => Members.findOne({mid: Meteor.userId()}),
currentUser: () => {
return Meteor.user();
},