【问题标题】:Get Multiple Users Data on Client Meteor在客户端 Meteor 上获取多个用户数据
【发布时间】:2014-12-14 15:09:47
【问题描述】:

所以我希望能够在我的模板中使用所有用户 _id 和用户名。我正在 server/publications.js 中创建一个出版物,如下所示:

Meteor.publish('allUserData', function(){
   Meteor.users.find({}, { fields : {
       username : 1,
       _id : 1
   }});
});

但我无法终生获取所有用户数据。我仍然只能获取当前登录用户的用户数据。我试过在不同的地方订阅; main.js,在我的路由和我的集合 js 文件中。

我已经尝试订阅,然后在订阅回调中调用数据,但这也不起作用。

所以我想知道,我这样做是否正确?我在哪里订阅?为什么它不像我想要的那样工作?我在学习流星的第 2 天,所以任何帮助都将不胜感激。

【问题讨论】:

    标签: javascript meteor


    【解决方案1】:

    你错过了return

    Meteor.publish('allUserData', function(){
      return Meteor.users.find({}, {fields : {username : 1}});
    });
    

    另外请注意,您不需要在fields 中指定_id,因为它是自动添加的。

    【讨论】:

      【解决方案2】:

      您没有在发布函数中返回任何光标。当您这样做时,Meteor 假定您正在使用低级别的添加/更改/删除接口,这不是您在此处所追求的。更改您的函数以从 find() 返回光标:

      Meteor.publish('allUserData', function() {
          return Meteor.users.find({}, { fields : { username : 1, _id : 1 }});
      });
      

      (顺便说一句,_id: 1 不是必需的) 然后在您的客户端中在适当的地方订阅(这取决于),例如在自动运行中:

      Tracker.autorun(function () {
          Meteor.subscribe("allUserData");
      });
      

      【讨论】:

        猜你喜欢
        • 2014-12-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-25
        • 1970-01-01
        • 2015-11-01
        • 1970-01-01
        相关资源
        最近更新 更多