所以我希望能够在我的模板中使用所有用户_id和用户名#。我在server / publications.js中创建一个看起来像这样的出版物:
Meteor.publish('allUserData', function(){
Meteor.users.find({}, { fields : {
username : 1,
_id : 1
}});
});
但我不能为我的生活获取所有用户数据。我仍然只能获取当前登录用户的用户数据。我试过在不同的地方订阅; main.js,在我的路线中,以及我的集合js文件中。
我已经尝试订阅然后调用订阅回调中的数据,但这也没有用。
所以我想知道,我是否正确地走这条路?我在哪里订阅我的订阅?为什么它不像我希望的那样工作?我在学习流星的第2天,所以任何帮助都会受到赞赏。
答案 0 :(得分:1)
您错过了return
:
Meteor.publish('allUserData', function(){
return Meteor.users.find({}, {fields : {username : 1}});
});
另请注意,您无需在_id
中指定fields
,因为它会自动添加。
答案 1 :(得分:1)
您没有在发布功能中返回任何光标。当你这样做时,Meteor假设你正在使用低级别添加/更改/删除的界面,这不是你在此之后所做的。更改函数以从find()返回光标:
Meteor.publish('allUserData', function() {
return Meteor.users.find({}, { fields : { username : 1, _id : 1 }});
});
(_id: 1
不是必需的btw)
然后在您的客户端订阅适当的位置(取决于哪里),例如在自动运行:
Tracker.autorun(function () {
Meteor.subscribe("allUserData");
});