2016-11-22 3 views
0

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?

Antwort

0

User.find ({}). Fetch() gibt eine Liste der Benutzer nur auf der Serverseite.

Sie können wahrscheinlich eine Meteormethode schreiben, um die Benutzerliste auf Serverseite zu holen und sie mit meteor.call anzurufen.

In der Callback-Funktion zu diesem Aufruf können Sie das Ergebnis der gewünschten Variablen zuweisen.

+0

Welche Methode? Wie Methode.Methoden? Wie kann ich eine Methode serverseitig erstellen und von clientseitig aufrufen? –

+0

Dieser Link wäre hilfreich in Methodenaufruf details.https: //guide.meteor.com/methods.html – Shivani

+0

oder einfach auf server.js nach dem Start Code endet können Sie einfache Methoden erstellen - – Shivani