2016-02-14 38 views
0

流星是JavaScript和Surly宝贝的新手。我无法读懂文档的this part。约Meteor.publish(name, func)流星发布null或未命名的记录集

参数
名字符串
记录集的名称。如果为空,则该集合没有名称,并且记录集自动发送到所有连接的客户端。

我认为记录集意味着Meteor Collection,如果这是正确的,那么如何发布行为发生在名为“null”的集合上,或者甚至没有名称的集合?我的意思是,如果第一个参数“该集合名称”为空或不存在,那么要发布的集合在哪里?由于

+0

“记录集是指流星集合”?不完全的。对于一个相关问题有一个很好的答案,它解释了记录集,流星集合,mongo集合等之间的关系:http://stackoverflow.com/a/21853298/1429390。阅读完答案后,您引用的文档看起来更清晰。 –

回答

0

如果您发布了空参数数据:

Meteor.publish(null, func) 

基本上是一样的,你没有自动发布包自动发布。这意味着你不需要订阅,也不需要安装autopublish包。数据已准备好在客户端和被动模式下,您可以在不订阅任何模板的情况下使用它。

要发布的集合在哪里?无论您想要自动发布的收藏集。就在FUNC定义它:

Meteor.publish(null, function() { 
    CollectionName.find({}, { 
    /* 
    sort: Sort specifier, 
    skip: Number, 
    limit: Number, 
    fields: Field specifier, 
    reactive: Boolean, 
    transform: Function 
    */ 
    }); 
}); 
1

Meteor.publishname参数已经完全无关的集合。虽然惯例是你应该对你正在使用的集合有相似的命名,但你可以从字面上调用一个发布函数“asdjfsaidfj”,它是有效的。正如yudap所说,你发送给客户的数据完全取决于函数。您还可以使用数组返回多个集合中的数据:

return [ 
    ExampleCollection.find(), 
    AnotherCollection.find() 
];