2016-05-16 7 views
2

Ich mache eine Meteor Web App, wo der Benutzer auf einen HTML-Button klicken wird. Sobald diese Schaltfläche angeklickt ist, muss der Benutzer zu einer anderen Seite mit einigen Formen weitergeleitet werden, die von einem Meteor-Schema-Paket generiert wurden. Das erste Feld im einfachen Schema muss automatisch den Zeichenfolgenwert "Hallo" erhalten und dann werden die restlichen Felder im einfachen Schema vom Benutzer mit den Eingabefeldern auf der Seite ausgefüllt. Worüber ich mich nicht sicher bin, ist, wie der erste Wert automatisch auf diesen Zeichenfolgenwert gesetzt wird. Hier einige der Code ich habe:Wie kann ich ein Feld in einem Meteor Simple Schema einer js-Variablen gleichsetzen und den Benutzer trotzdem den Rest des einfachen Schemas ausfüllen lassen?

Die einfache Schema Erklärung:

LobbySchema = new SimpleSchema({ 
    game: { 
    type: String, 
    label: "Game" 
    }, 
    console: { 
    type: String, 
    label: "Console" 
    }, 
    players: { 
    type: Number, 
    label: "Players" 
    }, 
    mic: { 
    type: Boolean, 
    label: "Mic" 
    }, 
    note: { 
    type: String, 
    label: "Note" 
    }, 
    gamertag: { 
    type: String, 
    label: "Gamertag" 
    }, 
    createdAt: { 
    type: Date, 
    label: "Created At", 
    autoValue: function(){ 
     return new Date() 
    }, 
    autoform: { 
     type: "hidden" 
    } 
    } 
}); 

Das erste Feld gibt im Schema „Spiel“ muss den Wert „Hallo“ gegeben werden, wenn die HTML-Schaltfläche geklickt wird . Im Moment kann ich diesen Wert auf ein JavaScript-Variable zuweisen mit der Taste durch eine Onclick Funktion:

function getElementText(elementID){ 
    var elementText = "hello"; 
} 

Die Taste würde rufen Sie die getElementText Funktion und hat die elementText Variable gleich „Hallo“. Jetzt muss ich das erste Feld im einfachen Schema diesem Variablenwert zuweisen, "Hallo", dann habe ich es so, dass der Benutzer nun den Rest des Schemas mit den Eingabefeldern ausfüllen kann, die automatisch mit diesem Code in den HTML-Code generiert werden :

{{> quickForm collection="Lobby" id="insertLobbyForm" type="insert" class="newLobbyForm"}} 

Wenn Sie die Antwort nicht das Gefühl, wie die Bereitstellung (vielleicht geschieht es komplizierter zu sein, als ich glaube), dann wäre ich sehr glücklich sein, einen Link zu einer Website zu erhalten, die mir dabei helfen könnte. Ich bin auch sehr gerne bereit, etwas zu der Frage zu erklären, ob ich die Situation oben nicht ausreichend erklärt habe.

Antwort

1

Sie können die Autoform Haken wie folgt verwenden:

AutoForm.hooks({ 
    app_create: { 
     before: { 
      method: function (doc) { 
       // Do whatever assignment you need to do here, 
       // like doc['game'] = "hello"; //then 
       return doc; 
      } 
     }, 
     onSuccess: function (formType, result) { 

     }, 
     onError: function (formType, error) { 

     } 
    } 
}); 

Wo hier app_create ist die ID des Formulars Sie mit Autoform sind zu senden.

+0

Das scheint eine vielversprechende Antwort zu sein, könnten Sie mich mit einer Seite verlinken, auf der Dokumentation steht? Ich bin mir nicht sicher, ob ich wirklich verstehe, was ein Autoform-Hook ist. Danke für die Antwort! – dmkanerer

+0

https://github.com/aldeed/meteo-autoform/blob/0097d5fe0e1c7456b2fd5ed49358576b35a34fb8/README.md#callbackshooks – MrE

+0

Ich kann nicht herausfinden, welche Haken für das Leben von mir bitte helfen – dmkanerer