流星和订阅

时间:2012-10-10 17:13:29

标签: meteor

我不理解Meteor.subscribe的概念。 它应该从服务器接收记录,并将其附加到具有相同名称的集合,对吗?

  

[subscribe]将对传入属性进行排队,直到您在客户端上使用匹配的集合名称声明Meteor.Collection。

那么,为什么docs中的示例使用不同的名称? allplayers 玩家之间的关系是什么?

Meteor.subscribe("allplayers");
...
// client queues incoming players records until ...
...
Players = new Meteor.Collection("players");

1 个答案:

答案 0 :(得分:3)

有两个名字:

  • 集合的名称(本例中为'players')。
  • 订阅的名称(在这种情况下为'allplayers')。

订阅是一种将记录导入客户端集合的方法。记录所涉及的此集合的名称(在服务器端)通过在相关this.set()函数中使用Meteor.publish来确定,但通常它只是名称在服务器端查询的集合[1]。

许多订阅可以将数据存储到同一个集合中,因此订阅的名称当然不需要与集合的名称相对应。事实上,如果您对该集合进行相当简单的单一订阅,那么将它们保持相同可能是个好主意。

[1]如果您在return players.find();中返回光标(例如Meteor.publish),会自动为您拨打this.set(name)的电话,其中name 1}}是从服务器端players集合推断的。