Помощниците на шаблоните са реактивни, което означава, че се актуализират, когато състоянието на приложението се промени или се появят нови данни. Във вашия случай помощникът се извиква незабавно, когато шаблонът се визуализира и преди Meteor.users
колекцията е попълнена. Следователно .findOne()
методът връща недефиниран. Той ще бъде коригиран при второто преминаване след пристигането на нови данни.
Лесното решение тук е да проверите дали данните присъстват в помощника:
myClub: function(){
var currenUserId = Meteor.userId();
var user = Meteor.users.findOne({_id: currenUserId});
if(!user) return 'NO DATA';
return user.role;
},
В реалния живот вероятно ще искате да изчакате основните данни да бъдат заредени, преди да изобразите шаблона. Това обикновено се прави на ниво контролер.