javascript - 如何使用 Meteor.js 显示所有登录用户的列表

标签 javascript meteor user-accounts user-profile

我几天来一直在尝试获取 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/

相关文章:

asp.net-mvc - Asp.Net MVC 应用程序中的子域

javascript - 使用 velocity.js 为可拖动元素设置动画

javascript - 如何更改 Reactive Array 中的值并重新运行 helper

javascript - Meteorjs : How can I use variables which are defined in template events inside my template helpers?

c# - 如何知道 guest 用户是否正在运行应用程序 - C#?

c# - 如何以编程方式授予虚拟用户对文件夹(或文件)的权限

javascript - 强制 Javascript 不执行直到显示 ="inline"

javascript - 如何在javascript中将类扩展到类实例?

javascript - 将 javascript 放入外部文件并从中调用函数

javascript - 使用 meteor-autoform 提交后创建文档