Jade模板中使用变量(Node.js服务器端)

25

我想要显示一个联系人列表,为此我已经将每个联系人 div 转换为了 Jade 代码,但是我还需要填充相关的字段。我能在服务器端完成吗?我的服务器端代码使用 Node.js。一个联系人的 Jade 模板如下:

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

所以,如果有一种方式可以表示我想要变量在那里,而不是John Doe和随机电话号码,然后nodeJS代码将把正确的值放入其中,并将contact jade添加到主jade页面中,然后继续下一个联系人。类似于这样的东西:http://embeddedjs.com/

我正在使用express作为Nodejs的框架。

1个回答

64

当您调用render时,可以传递带有数据的对象来实现此操作。

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

然后在jade中你可以这样做

span #{pageData.name[0]}

或者如果你想要一个循环

each item in pageData.name
  span #{item}

你可以在Github页面上找到更多信息:https://github.com/visionmedia/jade


1
或者 jade-lang.com,但是 Git 树中的示例可能是最好的文档。 - Timothy Meade
有没有一种方法可以从模板内部访问页面的名称?例如:pageTitle =#{'your page'} - funseiki
1
谢谢。最重要的例子,你在主Jade页面上看不到它... - AntouanK
非常好的回答 :) - Sudhanshu Gaur

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接