このコードは、Meteor プロジェクトのclient/main.js
ファイルで取得します
Template.panel.onCreated(function loginOnCreated() {
var profile = Session.get('profile');
this.myvar = new ReactiveVar(User.find({}).fetch());
});
の結果User.find({})
は空です。これを他の場所( を含むmeteor mongo
)でクエリすると、ユーザーの配列が取得されます。
したがって、このコードがクライアント側で実行されているという事実に問題があるのではないかと思います。この同じファイルで、このクエリは他の場所で機能しますが、おそらくサーバー コンテキストで機能します。
ReactiveVar
テンプレート/ページが読み込まれるとすぐに、これに Mongo の結果を入力するにはどうすればよいですか?
Meteor.startup()
サーバー側で次のようなことをすると:
console.log(User.find({}).count());
それは私に正しいユーザー数を与えます。すぐに。
@編集
数秒を追加するだけsetTimeout
で(1秒ではなく、長い時間が必要です)、これとまったく同じ場所で機能します。
Template.panel.onCreated(function loginOnCreated() {
//...
setTimeout(function(){
template.timeline.set(User.find({}).fetch());
console.log(timeline)
},3000);
});
では、この操作を許可するのになぜそんなに時間がかかるのか、誰か知っていますか? 回避策はありますか?