web-dev-qa-db-fra.com

Modèle Jade avec variables (côté serveur nodejs)

Je veux donc afficher une liste de contacts et pour cela j'ai transformé chaque div de contact en code jade, mais je dois encore remplir les champs pertinents. Puis-je le faire côté serveur? J'utilise nodejs pour le code du serveur. Le modèle de jade d'un contact est:

//  
    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

Donc, au lieu d'avoir John Doe et le numéro de téléphone aléatoire s'il y avait un moyen de signifier que j'aimerais des variables là-bas, puis le code nodeJS collerait les bonnes valeurs là-dedans et ajouterait le jade de contact à la page principale de jade , puis passez au contact suivant, etc. Donc quelque chose de similaire à ceci: http://embeddedjs.com/

J'utilise express comme cadre pour Nodejs.

25
Alex B

Oui, vous pouvez le faire lorsque vous appelez le rendu, passez l'objet avec des données

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

Ensuite, à l'intérieur de jade, vous pouvez faire

span #{pageData.name[0]}

ou si vous voulez une boucle

each item in pageData.name
  span #{item}

Vous pouvez en savoir plus sur la page github https://github.com/visionmedia/jade

64
Dmytro Yashkir