gpt4 book ai didi

meteor - 第一次使用 meteor js 时,用户集合中所有用户的列表不工作

转载 作者:行者123 更新时间:2023-12-01 11:41:38 24 4
gpt4 key购买 nike

我在列出用户集合中的所有用户时遇到问题。当我进入列表页面时,只显示当前登录用户的详细信息。但是,一旦页面刷新并且一切正常,所有用户都会被列出。

在服务器端,我有以下发布代码

Meteor.publish("userList", function() {

var user = Meteor.users.findOne({
_id: this.userId
});


if (Roles.userIsInRole(user, ["admin"])) {
return Meteor.users.find({}, {
fields: {
profile_name: 1,
emails: 1,
roles: 1,
contact_info: 1
}
});
}

this.stop();
return;
});

在客户端,

Meteor.subscribe('userList');

在模板 js 文件中,我进行以下调用,

Meteor.users.find();

请帮我解决这个问题。我在这里错过了什么?

最佳答案

这听起来像是订阅的竞争条件(它在用户登录之前运行)。我建议将您的订阅放在 autorun 中:

Tracker.autorun(function() {
if (Meteor.user()) {
Meteor.subscribe('userList');
}
});

这还有一个额外的好处,即在用户登录之前不开始订阅(节省资源)。

顺便说一句,我想不出您需要 this.stop() 和发布函数结尾的原因。

关于meteor - 第一次使用 meteor js 时,用户集合中所有用户的列表不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19945225/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com