Ich habe eine Sammlung auf dem Server veröffentlicht und auf dem Client automatisch abonniert. Ich möchte das 'ausgewählte' Element in der Sitzung setzen und die Vorlage aktualisieren lassen, um nur das ausgewählte Element anzuzeigen, aber es scheint, dass dies nur mit einem Roundtrip zum Server gemacht werden kann (was völlig unnötig ist).
Häufig:
%Vor%Kunde:
%Vor%Server:
%Vor%Vorlage:
%Vor% Meine Anforderung ist, dass die Missions.find()
in Template.missionList.missions
die clientseitigen gecachten Ergebnisse filtert, anstatt sie erneut vom Server anzufordern, aber ich kann anscheinend keine Flagge oder Einstellungen finden, die mir erlauben Sag dem Minimongo, nur die aktuell verfügbaren Daten zu verwenden.
Ich bin mir auch nicht ganz sicher, ob das das ist, was ich tun sollte. Ich habe gerade mit jQuery begonnen, die nicht ausgewählten Missionen zu verstecken, aber Meteor in den Schoß genommen, und es scheint eine natürliche Eignung zu sein, die Daten und die Reaktivität zu verwenden um die Auswahl / lokale Filterung zu steuern.
Gibt es eine Möglichkeit, den Roundtrip zu vermeiden oder benutze ich ihn einfach falsch?
Durch das Einrichten einer Publish / Subscribe-Beziehung erstellen Sie eine vereinfachte Form der Datenbankreplikation. Minimongo wird eine Kopie der Daten lokal haben und find () lokal ohne einen Server-Roundtrip ausführen. Wenn Sie Netzwerkaktivität oder Aufrufe des Servercodes sehen, liegt das daran, dass Meteor regelmäßig hinter den Kulissen arbeitet, um das Abonnement mit dem Server und nicht mit Ihrem spezifischen Fund synchron zu halten.
Dies bedeutet auch, dass Sie nicht zu viele Daten an den Client senden müssen, sodass Ihre serverseitige Veröffentlichungsfunktion zusätzlich zu den vorhandenen Auswahlkriterien nach den spezifischen Feldern filtern kann, die vom Client benötigt werden.
Tags und Links meteor