2012-04-28 10 views
19

Esistono modi migliori per popolare campi di selezione basati su Jade, sto attualmente utilizzando questo esempio. C'è qualche modo migliore per non rovinare il codice del template?Dati di selezione del campo di selezione della giada

il valore dell'articolo è 'giorno'.

select 
     repeation = [ 'no-repeat', 'day', 'week', 'month'] 
     for item in repeation 
     if job.repeat == item 
      option(selected="true") #{item} 
     else 
      option #{item} 

anche per quanto riguarda la visualizzazione di selezioni multiple, quando l'articolo è gamma di [ 'giorno', 'settimana']?

// Modifica piccola soluzione possibile per l'elemento più

 enginges = [ 'google', 'bing', 'yahoo', 'duckduckgo'] 
     for engine in enginges 
     option(selected=job.sources.indexOf(engine) != -1) #{engine} 

risposta

35

Si dovrebbe essere in grado di fare qualcosa di simile:

for item in repeation 
    option(selected=job.repeat == item) #{item} 

Lo stesso concetto dovrebbe essere in grado di essere applicato ad un oggetto di multiplo selezionare cadere in picchiata.

+1

Ty questo funziona bene, ho modificare il mio post per aggiungere la selezione multipla anche. –

+0

bel trucco! – Charles

+2

È solo javascript. "Job.repeat == item" restituisce true o false. Lo stesso concetto può essere applicato quando si restituiscono i valori dalle funzioni, è possibile restituire direttamente l'espressione. – AntelopeSalad

2

Un paio di cose da aggiungere alla risposta (https://stackoverflow.com/a/10368381/870274):

  1. "ogni" è più comunemente utilizzato ora invece di "per"

  2. non dimenticare il "-" per la riga: repeation = ['no-repeat', 'day', 'week', 'month'], o si otterrà un errore di compilazione. Così il finale risultato sarebbe (uguali ai suoi):

    select 
        - repeation = [ 'no-repeat', 'day', 'week', 'month'] 
        each item in repeation 
        option(selected=job.repeat == item) #{item} 
    
+1

Invece di "sopra/sotto", fare riferimento ad altri post per qualcosa di non posizionale. Il nome dell'autore o un collegamento al post, ad esempio. In questo momento, solo la domanda è al di sopra della tua risposta. – Mogsdad

Problemi correlati