2012-03-29 11 views
25

Quindi voglio mostrare un elenco di contatti e per questo ho trasformato ciascun contatto div in codice jade, ma devo ancora popolare i campi rilevanti. Posso farlo sul lato server? Sto usando nodejs per il codice del server. Il modello di giada di un contatto è:Modello di giada con variabili (lato server nodejs)

// 
    img-cont 
    .img-cont 
     // 
     img-cont 
     .left-img 
     // 
      left-img 
     .img-box 
      img(src='assets/img/img.jpg', alt='') 
     .name 
      h6 
      span John Doe 
      img(src='assets/img/star-b.png', alt='') 
      p 
      strong Phone number: 
      | +1 234 567890 
      p 
      strong Email address: 
      a(href='mailto:[email protected]') [email protected] 
     // 
     left-img 
     ul.share-ul 
     li 
       a.edit(href='#') Edit 
     li 
      a.share(href='#') Share 
     li 
      a.delete(href='#') Delete 
    // 
     img-cont 

Così, invece di avere John Doe e il numero di telefono a caso, se ci fosse un modo per significare che mi piacerebbe variabili di là, e poi il codice nodeJS Piantavo i valori giusti sono lì e aggiungi la giada di contatto alla pagina principale di giada, quindi vai al contatto successivo e così via. Quindi qualcosa di simile a questo: http://embeddedjs.com/

Sto usando express come framework per Nodejs.

risposta

65

Sì, è possibile farlo quando si chiama il rendering passare l'oggetto con i dati

res.render('your page', {pageData: {name : ['name 1', 'name 2']}}); 

Poi all'interno di giada si può fare

span #{pageData.name[0]} 

o se si desidera un loop

each item in pageData.name 
    span #{item} 

Puoi trovare ulteriori informazioni sulla pagina github https://github.com/visionmedia/jade

+1

Oppure jade-lang.com ma gli esempi nella struttura Git sono probabilmente la migliore documentazione. –

+0

C'è un modo per accedere al nome della pagina dall'interno di un modello? Per esempio. pageTitle = # {'your page'} – funseiki

+1

@funseiki Vedi questa domanda correlata: http://stackoverflow.com/q/24855111/1715579 –

Problemi correlati