Шаблон Jade с переменными (на стороне сервера nodejs) - PullRequest
25 голосов
/ 29 марта 2012

Итак, я хочу показать список контактов, и для этого я преобразовал каждый контактный div в нефритовый код, но мне все еще нужно заполнить соответствующие поля. Могу ли я сделать это на стороне сервера? Я использую 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:mail@company.com') mail@company.com
      //
        left-img
      ul.share-ul
        li
              a.edit(href='#') Edit
        li
          a.share(href='#') Share
        li
          a.delete(href='#') Delete
    //
      img-cont

Таким образом, вместо того, чтобы иметь Джона Доу и случайный номер телефона, если бы был способ показать, что я хотел бы видеть там переменные, а затем код nodeJS вставил бы туда правильные значения и добавил бы контактный нефрит в Главная страница нефрита, а затем перейти к следующему контакту и так далее. Итак, что-то похожее на это: http://embeddedjs.com/

Я использую экспресс в качестве основы для Nodejs.

1 Ответ

64 голосов
/ 29 марта 2012

Да, вы можете сделать это, когда вы вызываете render, передавая объект с данными

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

Тогда внутри Джейд вы можете сделать

span #{pageData.name[0]}

или если вы хотите петлю

each item in pageData.name
  span #{item}

Вы можете найти больше на странице GitHub https://github.com/visionmedia/jade

...