テンプレートヘルパーはリアクティブです。つまり、アプリの状態が変化したり、新しいデータが表示されたりすると、テンプレートヘルパーは自動的に更新されます。あなたの場合、ヘルパーはテンプレートがレンダリングされた直後、Meteor.users
の前に呼び出されます コレクションがいっぱいです。したがって、.findOne()
メソッドは未定義を返します。新しいデータが到着した後、2回目のパスで修正されます。
ここでの簡単な修正は、データがヘルパー内に存在するかどうかを確認することです。
myClub: function(){
var currenUserId = Meteor.userId();
var user = Meteor.users.findOne({_id: currenUserId});
if(!user) return 'NO DATA';
return user.role;
},
実際には、テンプレートをレンダリングする前に、基本データがロードされるのを待つことをお勧めします。これは通常、コントローラーレベルで行われます。