Pembantu template bersifat reaktif, yang berarti mereka memperbarui diri saat status aplikasi berubah atau data baru muncul. Dalam kasus Anda, helper dipanggil segera saat template dirender dan sebelum Meteor.users
koleksi diisi. Oleh karena itu, .findOne()
metode mengembalikan tidak terdefinisi. Ini akan diperbaiki pada pass kedua setelah data baru tiba.
Perbaikan sederhana di sini adalah memeriksa apakah data ada di dalam helper:
myClub: function(){
var currenUserId = Meteor.userId();
var user = Meteor.users.findOne({_id: currenUserId});
if(!user) return 'NO DATA';
return user.role;
},
Dalam kehidupan nyata Anda mungkin ingin menunggu data dasar dimuat sebelum Anda merender template. Itu biasanya dilakukan pada level pengontrol.