2016-11-07 12 views
2

2つの異なるコレクションから2つのカーソルの配列を返す(サーバー側コードで)流星の公開関数があります。 それぞれの場合、返されるカーソルには、Meteor.publish内の関数の引数として指定された、いくつかの照会基準を満たす文書が含まれているはずです。 次のコードは、それがより明確になります。流星で引数を使用してサブスクリプションを作成

//server 
Meteor.publish('publisher', function(userId){ 
return[ 
    posts.find({createdBy: userId}), 
    accounts.find({_id: userId}) 
    ]; 
}); 
//client 
Meteor.subscribe('publisher',Session.get('userId')); 
//this code runs within a meteor method on the client 
var id = Session.get('userId'); 
console.log(id) 
var acnts = accounts.find({_id: id}).fetch(); 
console.log(acnts); 

「userIdを」と呼ばれるセッションを設定し、ログインボタンがあります。 コンソールは現在のIDを記録しますが、コンソールに記録された文書は常に空です(存在していますが)。

ご協力いただければ幸いです。 :)

+1

コードがコンテキスト外であるために何が起こっているのかわかりにくいですが、これは通常、サブスクリプションがまだ準備されていないために起こります。ブラウザに 'accounts.find()'という行にブレークポイントを置き、ポーズ後に再度ブレークポイントを実行させても動作するなら、これが問題です。 –

答えて

0

サブスクリプションに応じてクライアントコードをコールバックに入れます。

関連する問題