【问题标题】:meteor: conditional subscription in template level流星:模板级别的条件订阅
【发布时间】:2015-12-05 05:46:22
【问题描述】:

我在具有不同数据参数但使用相同发布的其他路由中重用相同的模板...

如果我进行正常的发布/订阅,数据将按预期发布。但是当我像下面那样进行有条件的发布/订阅时,我无法订阅数据。控制台日志返回空数组,,,

server/publication.js

Meteor.publish('ACStats', function(cId, uId) {
    var selectors = {cId:cId, uId:uId};
    var options = {
        fields: {qId:0}
    };
    return ACStats.find(selectors,options);
});

client/onCreated

Template.channelList.onCreated(function() {
  this.disable = new ReactiveVar('');
  if (FlowRouter.getRouteName() === 'profile') {
    var self = this;
    self.autorun(function() {
      var penName = FlowRouter.getParam('penName');
      var u = Meteor.users.findOne({slugName:penName});
      if (u) {var uId = u._id;}
      Meteor.subscribe('ACStats', null, uId);
    });
  } else{
    var self = this;
    self.autorun(function() {
      var channelName = FlowRouter.getParam('channel');
      var c = Channels.findOne({title:channelName});
      if (c) {var cId = c._id;}
      Meteor.subscribe('ACStats', cId, null);
    });
  }
});

控制台

ACStats.find().fetch() //return empty array

有人发现我的错误..??

非常感谢……

【问题讨论】:

  • 有几个地方可能会出错。 (1) 您对 Meteor.usersChannels 的查找没有返回任何结果。 (2) 您的ACStats 文档有cIduId missing 而不是定义为null

标签: javascript node.js mongodb meteor flow-router


【解决方案1】:

你可以发表两篇文章:

Meteor.publish ('ACStatsChannels', cId, function() {
});
Meteor.publish ('ACStatsUsers', uId, function() {
})

然后像这样订阅:

Template.channelList.onCreated(function() {
   this.disable = new ReactiveVar('');
   var self = this;
   self.autorun(function() {
      if (FlowRouter.getRouteName() === 'profile') {
          var penName = FlowRouter.getParam('penName');
          self.subscribe('ACStatsUsers', penName);
      } else {
          var channelName = FlowRouter.getParam('channel');
          self.subscribe('ACStatsChannels', channelName);
    }
  });
});

【讨论】:

猜你喜欢
  • 2015-12-12
  • 2015-08-27
  • 1970-01-01
  • 2016-02-17
  • 2012-10-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-04
  • 1970-01-01
相关资源
最近更新 更多