Meteor Angular获得所有用户

时间:2016-11-26 15:51:56

标签: angular meteor

我是Meteor和Angular 2的新手,我正在努力列出我客户端的所有用户。据我所知,我必须在我的服务器上发布并订阅我的客户端,我按照以下方式进行订阅:

users.ts

import {Meteor} from 'meteor/meteor';

Meteor.publish('usersList', function () {
    console.log('Publish from server ');
    return Meteor.users.find({_id: {$ne: Meteor.userId()}});
});

但是,甚至没有这个。我在 main.ts 中导入此文件。我不确定如何发布它们以获得所有用户。

我按照Meteor-Angular2 tutorial创建了另一个集合。该文件如下: 的 wishes.ts

import {Meteor} from 'meteor/meteor';
import {Wishes} from '../../../both/collections/wishes.collection';

Meteor.publish('wishList', function () {
    console.log("wishlist "+this.userId);
    return Wishes.find(buildQuery.call(this));
});


function buildQuery(): Object {
    const isAvailable = {
        $and: [{
            owner: this.userId
        }, {
            owner: {
                $exists: true
            }
        }]
    }
    return isAvailable;
}

我在服务器的 main.ts 中调用它,它正在运行。我不知道为什么要调用其中一个文件,为什么不调用另一个文件。任何方向都将非常感谢!

1 个答案:

答案 0 :(得分:0)

您的users.ts中的meteor发布方法将为订阅了' userList'的每个新客户端触发其回调。 如果你想获得Meteor用户集合中的所有用户,一个简单的查找({})将为你提供所有用户,而如果需要任何更具体的查询,你将使用查找查询中的一个来查找一个或多个用户

从您在帖子中添加的代码段中,您的代码看起来很不错。