如何根据网址使Meteor Collection无反应?

时间:2015-01-21 20:11:21

标签: javascript meteor

嗨,我正在制作一个流星的磁性诗歌游戏,我非常喜欢它。

http://test-magnets.meteor.com/

目前它的协作效果非常好。我现在正试着这样做,这样你就可以私下玩,而不会让人搞乱你的诗。我使用Iron Router根据userID

生成一个url

router.js

Router.map(function() {
this.route('home', {
    path: '/'
});
var user = Meteor.userId();
this.route('private', {
    path: '/' + user
   });
});

我有想法在磁铁内使用冰箱。在家庭协作上iceId是1.当你点击创建我自己的时,它会将fridgeId更改为与userId相同。我假设我需要根据fridgeId进行某种发布和订阅,但不知道如何。

这会将fridgeId切换为用户ID

  'click #new-board': function() {
    var user = Meteor.userId();
    var magnet = Magnets.findOne();
    Magnets.update({_id: magnet._id}, {$set: {fridgeId: user}});
    return Magnets.find({fridgeId: user});
}

然后在主页上将fridgeId设置为1

Template.private.events = {
   'click #group-play': function() {
    var magnet = Magnets.findOne();
    Magnets.update({_id: magnet._id}, {$set: {fridgeId: 1}});
    return Magnets.find({fridgeId: 1});
  }
};

当前订阅并发布

if (Meteor.isClient) {

Meteor.subscribe('magnets', function() {
    return Magnets.find();
 });
}

if (Meteor.isServer) {
  Meteor.publish('magnets', function() {
    return Magnets.find();
  });
 }

任何建议都将不胜感激。感谢

-John

1 个答案:

答案 0 :(得分:2)

return Magnets.find({fridgeId: user},{reactive: false});