टेम्प्लेट हेल्पर्स प्रतिक्रियाशील होते हैं, जिसका अर्थ है कि जैसे ही ऐप की स्थिति बदलती है या नया डेटा दिखाई देता है, वे खुद को अपडेट कर लेते हैं। आपके मामले में, टेम्पलेट के प्रस्तुत होने पर और Meteor.users
से पहले हेल्पर को तुरंत कॉल किया जाता है संग्रह भरा हुआ है। इसलिए, .findOne()
विधि अपरिभाषित लौटाती है। नया डेटा आने के बाद इसे दूसरे पास में ठीक किया जाएगा।
यहाँ सरल उपाय यह जाँचना है कि डेटा हेल्पर के अंदर मौजूद है या नहीं:
myClub: function(){
var currenUserId = Meteor.userId();
var user = Meteor.users.findOne({_id: currenUserId});
if(!user) return 'NO DATA';
return user.role;
},
वास्तविक जीवन में आप शायद टेम्पलेट को प्रस्तुत करने से पहले मूल डेटा के लोड होने की प्रतीक्षा करना चाहेंगे। यह आमतौर पर नियंत्रक स्तर पर किया जाता है।