【问题标题】:Passing arguments between Jade templates在 Jade 模板之间传递参数
【发布时间】:2014-03-15 17:22:19
【问题描述】:

我正在开发一个小型 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 块移动到一个单独的玉文件中,然后这样做:

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

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

【问题讨论】:

  • 使用Mixin不是更好吗?
  • Mixins 可以,但由于某种原因它们无法通过包含,至少在我这边。

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


【解决方案1】:

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

例子:

在控制器中:

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

在 JADE 文件中:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-18
    • 1970-01-01
    • 2017-03-10
    • 2021-11-24
    • 2013-11-04
    • 1970-01-01
    相关资源
    最近更新 更多