Meteor Publish Subscribe
// Meteor - Publish / Subscribe:
Publication is done on the server-side, while subscription is done on the client-side.
For security reason, we should publish only selected fields. In this case, we publish only
the title field:
Meteor.publish('getTitles', function() {
return Posts.find({}, {fields: {title: 1}});
});
Meteor.publish('getTitles', function() {
return Posts.find({}, {fields: {title: 1}, limit: 20});
});
// Parameterized publication / subscription
Meteor.publish('decks.search', function(searchTerm){
if (! this.userId) {
this.ready();
} else {
searchTerm = decodeURIComponent(searchTerm);
queryDoc = {title: {$regex: new RegExp(searchTerm)}};
console.log("searchTerm:" + searchTerm);
console.log(queryDoc);
return DeckList.find(queryDoc);
}
});
Template.deck_search_result.onCreated(function(){
this.subscribe('decks.search',this.data.searchTerm);
this.subscribe('decks.subscriptions');
});
// To publish:
Meteor.publish('subscriptionName', function() {
return Posts.find();
});
// To do template-level subscription:
Template.templateName.onCreated(function(){
this.subscribe('subscriptionName');
});
page revision: 3, last edited: 18 Jun 2017 02:57