2016-12-02 2 views
0

Ich verwende Leerzeichen, um eine Pop-Quiz-Form zu generieren. Der folgende Code zeigt korrekt die Details des dritten Elements in dem Quiz-ArrayAuswählen von Array-Daten nach dem Zufallsprinzip mithilfe von Leertasten

{{#with quiz.[2]}} 
    <form class="testForm"> 
     <br> 
     {{question}}<br> 
     {{#each answer}} 
     <input type="radio" name="multipleChoice" value={{this}}>{{this}}<br> 
     {{/each}} 
     <br> 
     <input type="submit" value="Submit"> 
     <br><br><br> 
    </form> 
{{/with}} 

und die folgende Hilfsfunktion erzeugt korrekt eine Zufallszahl aus der Anzahl der Elemente in dem Quiz-Array

Template.templateName.helpers({ 
    randomNumber() { 
    return _.random(0, (this.quiz.length - 1)); 
    } 
}); 

jetzt was Ich versuche zu versuchen, die

{{#with quiz.[2]}} 

diesen Zufallszahlengenerator zu verwenden, um ein Quiz zufällig anzuzeigen. Logischerweise möchte ich etwas wie

{{#with quiz.[randomNumber]}} 

tun, sondern dass offensichtlich ein wenig

Antwort

1

einfach passen Sie Ihre Helfer ein zufälliges Element des quiz Array statt der Zufallszahl selbst zurück nicht funktioniert:

Template.templateName.helpers({ 
    randomElement(array) { 
    return array && array[_.random(0, (array.length - 1))]; 
    } 
}); 

Dann beziehen sich nur auf ihn als: {{#with randomElement quiz}}

+0

thankyou! Das bringt mir genau das richtige Ergebnis! Ich erhalte einen Konsolenfehler davon: "Exception in Vorlage Helper: TypeError: Kann Eigenschaft 'Länge' von undefined nicht lesen - irgendwelche thoughs? –

+0

Sehen Sie sich den aktualisierten Code an, der verhindert, dass das Array fehlt, was häufig passieren kann, wenn ein Abonnement noch nicht bereit ist. –

Verwandte Themen