Pomocnicy szablonów są reaktywni, co oznacza, że aktualizują się wraz ze zmianą stanu aplikacji lub pojawieniem się nowych danych. W twoim przypadku helper jest wywoływany natychmiast po wyrenderowaniu szablonu i przed Meteor.users
kolekcja jest wypełniona. Dlatego .findOne()
metoda zwraca niezdefiniowane. Zostanie to poprawione w drugim przebiegu po nadejściu nowych danych.
Prostą poprawką jest sprawdzenie, czy dane znajdują się wewnątrz helpera:
myClub: function(){
var currenUserId = Meteor.userId();
var user = Meteor.users.findOne({_id: currenUserId});
if(!user) return 'NO DATA';
return user.role;
},
W prawdziwym życiu prawdopodobnie będziesz chciał poczekać na załadowanie podstawowych danych, zanim wyrenderujesz szablon. Zwykle odbywa się to na poziomie kontrolera.