ich diesen Code in meinem Meteor Projekt bekommen, in einer client/main.js
DateiQuerying Mongo gibt leere Array in Template.foo.onCreate in Meteor App
Template.panel.onCreated(function loginOnCreated() {
var profile = Session.get('profile');
this.myvar = new ReactiveVar(User.find({}).fetch());
});
Und das Ergebnis User.find({})
ist leer. Wenn ich dies irgendwo anders abfrage (einschließlich meteor mongo
) bekomme ich ein Array von Benutzern.
Also frage ich mich, ob es ein Problem mit der Tatsache ist, dass dieser Code auf der Client-Seite läuft. In der gleichen Datei bekomme ich diese Abfrage an anderen Stellen, aber wahrscheinlich im Serverkontext.
Wie kann ich dieses ReactiveVar
mit dem Mongo-Ergebnis füllen, sobald die Vorlage/Seite geladen ist?
Wenn ich etwas tun, wie in Meteor.startup()
auf Server-Seite:
console.log(User.find({}).count());
Es mir die richtige Anzahl der Nutzer gibt. Sofort.
@edit
Wenn ich nur eine setTimeout
von wenigen Sekunden hinzufügen (1 Sekunde nicht jsut werden kann, hat es eine LONGET Zeit braucht), es funktioniert in diesem selben Ort.
Template.panel.onCreated(function loginOnCreated() {
//...
setTimeout(function(){
template.timeline.set(User.find({}).fetch());
console.log(timeline)
},3000);
});
Also, weiß jemand, warum es so lange dauert, mir diese Operation zu tun? Irgendeine Problemumgehung?
Welche Methode? Wie Methode.Methoden? Wie kann ich eine Methode serverseitig erstellen und von clientseitig aufrufen? –
Dieser Link wäre hilfreich in Methodenaufruf details.https: //guide.meteor.com/methods.html – Shivani
oder einfach auf server.js nach dem Start Code endet können Sie einfache Methoden erstellen - – Shivani