在Jade模板之间传递参数

时间:2014-02-16 13:26:31

标签: javascript node.js twitter-bootstrap express pug

我正在开发一个小型CMS系统,作为使用Express,Jade和Bootstrap的Node.js网站的热身,我遇到了一个小问题。

我正在使用包含页面的各个部分,例如导航标题等,以使网站尽可能模块化。我做了管理界面的静态部分,现在将开始添加动态,并且存在问题。

例如,如果我想创建一个支持手风琴的用户列表,那么现在我必须执行以下操作:

doctype html
html
  head
    title= 'My Awesome Website | ' + title
    include imports/bootstrap
    link(rel='stylesheet', href='css/style.css')
  body
    include include/navbar
    .container-fluid
      include include/sidebar-admin

      ul.list-user
      each user in users
        li.user
          h3.user.user-header= user.name
          //etc

而不是这个,我想将整个li.user块移动到一个单独的jade文件中,并执行此操作:

ul.list-user
  each user in users
    include include/userlistitem

但由于某种原因,变量用户不会传递给include。有没有办法强制它到包含的文件中有一个特定的变量,或者它还没有实现?

1 个答案:

答案 0 :(得分:0)

一种解决方案,不通过直接工作包括: 在控制器中渲染HTML并将其添加到“用户”实例。

示例:

控制器中的

user.html = jade.renderFile("views/_userlistitem.jade",{name:value});

在JADE文件中:

ul.list-user
   each user in users
      #{user.html}