2016-02-14 39 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() 
];