【问题标题】:Meteor - publish and subscribe issueMeteor - 发布和订阅问题
【发布时间】:2016-03-05 04:22:59
【问题描述】:

我是Meteor 的新手,正在尝试发布和订阅工作。这是我的订阅代码:

//isClient
    Session.set("userSetLimit",10);

  Template.MoodList.helpers({
    hlpinvoices: function(){
        var curinvoices = Meteor.subscribe('invoices', Meteor.userId(),Session.get("userSetLimit"));
        return curinvoices;
    }
  });

发布:

//isServer
    Meteor.publish('invoices',function (creator,limit) {
        return Invoices.find({CreatedBy:creator},{sort:{DateCreated:-1}, limit:limit});
    })

和模板:

  <template name="MoodList">
    <ul>
      {{#each hlpinvoices}}
        {{> invoice}}
      {{/each}}
  </ul>
</template>

这是我得到的错误:

延迟回调中的异常:错误:{{#each}} 当前仅接受 数组、游标或错误值。

但如果我使用 do:

//isClient
Session.set("userSetLimit",10);
  Template.MoodList.helpers({
    hlpinvoices: function(){
        return Invoices.find({CreatedBy:Meteor.userId()},{sort:{DateCreated:-1}, limit:Session.get("userSetLimit")});
    }
  });

我没有问题。知道如何解决这个问题吗?

【问题讨论】:

    标签: meteor publish-subscribe


    【解决方案1】:

    subscribe 是您为了从服务器获取数据而调用的东西,它本身实际上并不返回任何数据 - 因此出现错误。您需要在模板的 onCreated 方法中调用 subscribe:

    Template.MoodList.onCreated( function() {
      Meteor.subscribe('invoices', Meteor.userId(),Session.get("userSetLimit"));
    });
    

    然后在您的助手中,您可以退回发票:

    Template.MoodList.helpers({
        hlpinvoices: function(){
            return Invoices.find({CreatedBy:Meteor.userId()},{sort:{DateCreated:-1}, limit:Session.get("userSetLimit")});
        }
    });
    

    您可以在Meteor Guide 中了解有关订阅数据的更多信息。希望对您有所帮助!

    【讨论】:

      【解决方案2】:

      Meteor.subscribe 只为您提供订阅 ID。试试这个

          Template.MoodList.helpers({
            hlpinvoices: function(){
              Meteor.subscribe('invoices', Meteor.userId(),Session.get("userSetLimit"));
              var curunnvoices=Invoices.find({CreatedBy:Meteor.userId()},{sort:{DateCreated:-1}, limit:Session.get("userSetLimit")}) 
             return curinvoices;
            }
         });
      

      【讨论】:

        猜你喜欢
        • 2016-11-29
        • 1970-01-01
        • 1970-01-01
        • 2017-11-30
        • 2016-03-07
        • 1970-01-01
        • 1970-01-01
        • 2013-11-18
        • 1970-01-01
        相关资源
        最近更新 更多