Os auxiliares de modelo são reativos, o que significa que eles se atualizam à medida que o estado do aplicativo muda ou novos dados aparecem. No seu caso, o auxiliar é chamado imediatamente quando o modelo é renderizado e antes do
Meteor.users
coleção está cheia. Portanto, o .findOne()
método retorna indefinido. Ele será corrigido na segunda passagem após a chegada de novos dados. A correção simples aqui é verificar se os dados estão presentes dentro do auxiliar:
myClub: function(){
var currenUserId = Meteor.userId();
var user = Meteor.users.findOne({_id: currenUserId});
if(!user) return 'NO DATA';
return user.role;
},
Na vida real, você provavelmente desejará esperar que os dados básicos sejam carregados antes de renderizar o modelo. Isso geralmente é feito no nível do controlador.