Mallhjälparna är reaktiva, vilket innebär att de uppdaterar sig själva när appens tillstånd ändras eller ny data dyker upp. I ditt fall anropas hjälparen omedelbart när mallen renderas och före Meteor.users
samlingen är fylld. Därför är .findOne()
metod returnerar odefinierat. Det kommer att korrigeras i det andra passet efter att nya data har kommit in.
Den enkla fixen här är att kontrollera om data finns inuti hjälparen:
myClub: function(){
var currenUserId = Meteor.userId();
var user = Meteor.users.findOne({_id: currenUserId});
if(!user) return 'NO DATA';
return user.role;
},
I verkligheten vill du antagligen vänta på att grunddatan laddas innan du renderar mallen. Det görs vanligtvis på kontrollnivån.