Gli helper dei modelli sono reattivi, il che significa che si aggiornano quando lo stato dell'app cambia o vengono visualizzati nuovi dati. Nel tuo caso, l'helper viene chiamato immediatamente quando viene eseguito il rendering del modello e prima di Meteor.users
la raccolta è piena. Pertanto, il .findOne()
il metodo restituisce undefined. Verrà corretto nel secondo passaggio dopo l'arrivo di nuovi dati.
La semplice soluzione qui è controllare se i dati sono presenti all'interno dell'helper:
myClub: function(){
var currenUserId = Meteor.userId();
var user = Meteor.users.findOne({_id: currenUserId});
if(!user) return 'NO DATA';
return user.role;
},
Nella vita reale probabilmente vorrai aspettare che i dati di base vengano caricati prima di eseguire il rendering del modello. Questo di solito viene fatto a livello di controller.