3

我正在尝试将动态布局与 Jade 和 Express 一起使用。我见过很多替代方法,但从来没有一种干净的方法。

我的应用程序将有多种模板,包括动态其他模板。它就像我的应用程序基石,所以没有它我不能走得更远......

这是一个示例(3种模板): template_1 template_2 template_3

template_1包括template_2和另一个template_3

所以如果它是静态的,我会这样做:

# template.coffee
exports.index = (req, res) ->
  res.render 'template_1'

# template 1
Some HAML content

block content
  div.block
    include template_2
  div.block
    include template_3

但是,我想通过局部变量提供要使用的模板列表:

所以,我想做这样的事情

# template.coffee
exports.index = (req, res) ->
  res.render 'template_1', {
    template_list: [
      'template_2',
      'template_3'
    ]
  }

# template 1
Some HAML content

block content
  - each current_template in template_list
    div.block
      include current_template

或者

# template 1
Some HAML content

block content
  - each current_template in template
    div.block
      include #{current_template}

但它不起作用。它将包含扩展之后的任何内容作为字符串...

好像玉都是事先编好的。

那么,是否可以进行动态包含?还是部分?还是动态布局?

感谢您的任何帮助。

4

1 回答 1

1

考虑在客户端渲染这个,使用jadeify:https ://github.com/domenic/jadeify ,如果你也在使用browserify。

您可以执行以下操作:

var template = require("./template.jade");

document.getElementById("my-thing").innerHTML = template({
    localVar: "value",
    anotherOne: "another value"
});
于 2015-01-12T22:36:04.383 回答