Angular 2.0 Meteor:如何正确订阅集合?

时间:2016-11-17 20:08:46

标签: angular rxjs angular-meteor

我在服务器端为一个集合介绍了一个发布者,其代码如下:

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

现在我想在客户端订阅该集合。作为一个例子,我想在数据发生变化时将集合中的条目数打印到控制台:

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

结果让我感到困惑:

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

我似乎误解了整个概念。实现这个功能的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

我认为你遗漏了一些常见的代码,我通常把它放在/ common

model.js:

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

这样做的效果是使帖子'客户端和服务器代码中的变量。

组件代码:

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

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

答案 1 :(得分:0)

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

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

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

{{ myCount(posts) }}