2016-07-18 4 views
0

in db eingefügt wird versucht, meine sehr einfache SammlungDokument verschwindet nach in Meteor

Template.home.events({  
'click #send-button': function(e, t) { 
    e.preventDefault(); 
    msg = { 
     from: Meteor.user()._id, 
     to: Meteor.user().penpal, 
     sent: new Date(), 
     message: $('#message').val() 
    };  
    messages.insert(msg); 
    console.log(messages.find().fetch()); 
} 
}) 

in collections.js

messages = new Mongo.Collection('messages'); 

messages.allow({ 
    'insert': function (userId,doc) { 
     return true; 
} 
    }); 

Ich habe Nachricht wird eingefügt mit hinzufügen, aber die Konsole zeigt, dass es wird jedes Mal überschrieben, zB fügt es meine neue Nachricht hinzu, behält aber nicht alle alten Nachrichten bei. wenn ich versuche, Nachrichten zu machen

Template.home.helpers({ 
    'messages': function(){ 
     return messages.find().fetch(); 
    } 
}) 

und anschließend

{{#each messages}}...{{/each}} 

in html erhalte ich die Nachrichten für das Blinzeln eines Auges erscheint und dann wieder disapearing.

bitte helfen! Ich bin verzweifelt!

Antwort

1

Basierend auf dem Q & A, es scheint, dass Sie einfach die Sammlung veröffentlichen müssen und ihn abonnieren:

Server:

Meteor.publish('myMessages',function(){ 
    const me = this.userId; 
    if (me){ 
    return messages.find({ $or: [{ from: me },{ to: me }]}); 
    } 
    this.ready(); 
}); 

(im Code über die Sammlung, um Nachrichten gefiltert wird die für den aktuellen Benutzer relevant sind, können Sie bei Bedarf eigene Filter definieren).

Client:

Meteor.subscribe('myMessages'); 
+0

ich das bekommen, aber wenn ich console.log laufen (messages.find() holen().) es zeigt nur das letzte Objekt, das ich in der Sammlung hinzugefügt – Stormy

+0

Die andere Möglichkeit ist, dass Sie einfach nicht Pub-Sub gehen. Veröffentlichen Sie Nachrichten (auf dem Server) und Abonnieren (auf dem Client)? Oder haben Sie das 'autopublish' Paket installiert? –

+0

nein! das wird sein, was ist das, wie implementiere ich das? – Stormy