我是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 中调用它,它正在运行。我不知道为什么要调用其中一个文件,为什么不调用另一个文件。任何方向都将非常感谢!
答案 0 :(得分:0)
您的users.ts中的meteor发布方法将为订阅了' userList'的每个新客户端触发其回调。 如果你想获得Meteor用户集合中的所有用户,一个简单的查找({})将为你提供所有用户,而如果需要任何更具体的查询,你将使用查找查询中的一个来查找一个或多个用户
从您在帖子中添加的代码段中,您的代码看起来很不错。