我几天来一直在尝试获取 Meteor 聊天应用程序中登录用户的列表。 我尝试了很多不同的事情。我设法在用户配置文件对象上添加登录标志。 服务器端:
Accounts.onCreateUser(function(options, user) {
if(!options.profile){
options.profile = {}
}
options.profile.login = false;
if (options.profile)
user.profile = options.profile;
return user;
});
在浏览器控制台中我得到这个:
Meteor.user().profile
Object {login: false}
看来这可行。
现在我想列出用户是否登录: 客户端
Deps.autorun(function(){
if(Meteor.userId()){
Meteor.user().profile.login=true;
}
});
检查后,我登录时登录仍然是错误的。
此模板 html 为我提供了所有用户名的列表,但没有登录标志
{{#each allUsers}}
<p>{{username}}</p><p>{{profile.login}}</p>
{{/each}
所以我的问题是:profile.login 仍然是 false,我无法显示 profile.login,但会显示用户名。
提前谢谢您。问候乔里斯
最佳答案
要更改用户 profile.login
属性,您需要执行 Meteor.users.update(..)
或调用执行此操作的服务器方法。仅更改用户对象的属性是行不通的。
通常,我建议不要将用户状态保存到 mondodb 数据库中,而是将其保存在内存中的集合中。
最简单的可能是只使用以下软件包之一:
或者研究他们的源代码以了解如何传播用户状态。
关于javascript - 如何使用 Meteor.js 显示所有登录用户的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25643114/