Angular 2.0 Meteor:如何正确订阅collection?

Angular 2.0 Meteor: How to subscribe collection correctly?

我已经在服务器端使用以下代码为 collection 引入了一个发布者:

Meteor.publish('posts', () => Posts.find());

现在我想在客户端订阅collection。例如,每当数据更改时,我想将 collection 中的条目数打印到控制台:

ngOnInit() { Meteor.subscribe('posts', () => { console.log(Posts.find().count()); }); }

结果让我有些困惑:

Observable {_isScalar: false, source: ObservableCursor, operator: CountOperator}

看来我误解了整个概念。实现此功能的正确方法是什么?

我认为你遗漏了一些我通常放在 /common 中的通用代码

model.js:

// Collections that exist on the server database
Posts = new Mongo.Collection("posts");

这样做的效果是使 'Posts' 成为客户端和服务器代码中的一个变量。

组件代码:

Meteor.subscribe('posts', () => []);

this.helpers({
  posts: () => Posts.find(),

在客户端,我创建了一个 count 函数:

myCount(p:any) {
    return p.fetch().length;
}

并在我的 html 页面中添加了该功能:

{{ myCount(posts) }}