Der er 2 måder, du kan implementere en publiceringsfunktion på:
- Ved at returnere en markør (eller en række markører)
- Ved at bruge this.added(), this.changed() og this.removed().
Kun metode 2 tillader at ændre returnerede dokumenter.
Se venligst Meteor-dokumentationen her . Men da den medfølgende eksempelkode kan se kompleks ud, er her en anden:
// server: publish the rooms collection
Meteor.publish("rooms", function () {
return Rooms.find({});
});
svarer til:
// server: publish the rooms collection
Meteor.publish("rooms", function () {
var self = this;
var handle = Rooms.find({}).observeChanges({
added: function(id, fields) { self.added("rooms", id, fields); },
changed: function(id, fields) { self.changed("rooms", id, fields); },
removed: function(id) { self.added("rooms", id); },
}
});
self.ready();
self.onStop(function () { handle.stop(); });
});
I den anden prøve kan du ændre 'felt'-parameteren, før du sender den til offentliggørelse, sådan:
added: function(id, fields) {
fields.newField = 12;
self.added("rooms", id, fields);
},
Kilde:dette indlæg .