9

私は Meteor と Mongo についてはまったくの初心者です。たとえそれが欲しくなくても、いくつかの関係が必要です。

Feeds と呼ばれるコレクションと、feedid と userid を持つ UserFeeds と呼ばれる別のコレクションがあり、次のようにユーザー フィードをサーバーに公開します。

Meteor.publish('feeds', function(){
    return Feeds.find({_id:{$in:_.pluck(UserFeeds.find({user:this.userId}).fetch(),'feedid')}});
});

UserFeeds でユーザーを見つけて取得し (配列を返します)、それを取り出して feedid フィールドのみを取得し、Feeds コレクションでそれらのフィードを見つけます。

そして、次のようにクライアントでサブスクライブします。

Deps.autorun(function(){
   Meteor.subscribe("feeds");
});

問題は、新しいフィードと新しいユーザー フィードを追加するとクライアントが変更を受信しないが、ページを更新すると新しいフィードが表示されることです。

ここで何が欠けているのか分かりますか?

ありがとう。

4

4 に答える 4

11

あなたの問題は、ここで使用する .fetch() だと思います…</p>

UserFeeds.find({user:this.userId}).fetch()

…反応性を取り除きます。

.fetch() はカーソルではなく配列を返し、その配列は反応しません。

http://docs.meteor.com/#fetch

于 2013-03-28T21:49:58.177 に答える
1

これを試して ...

Meteor.autosubscribe(function(){
    Meteor.subscribe("feeds");
});

そしてテンプレートJSで...

Template.templateName.feeds = function() 
  return Feeds.find() # or any specific call
};

HTMLで...

{{#each feeds}}
   do some stuff
{{else}}
   no feed
{{/each}}
于 2013-03-28T15:24:12.250 に答える