Jade模板 – dynamic调用Mixin

我怎样才能使用json的一个string被join到一个Jade模板来dynamic加载一个mixin? 下面的目标是为twoColumn.jade加载foobar mixins。

twoColumn.jade

 mixin twoColumns(obj) .container-fluid .row(class=obj.class) for item in obj.items .col-xs-12.col-sm-3 //- Syntax for dynamically calling a mixin? +item.template(item) 

content.json

 { "twoColumns": { "class": "foobar", "items": [ { "template": "foo", "title": "Hello" }, { "template": "bar", "title": "World" } ] } } 

这是Jade中不太明显的一个特性,因为它在文档中没有明确提到。 实际上,您可以使用插值语法( #{...} )来dynamicselectmixin名称。

从Jade语言指南 :

插值? 对! 这两种types的文本都可以使用插值,如果我们将{ name: 'tj', email: 'tj@vision-media.ca' }传递给编译的函数,我们可以执行以下操作:

 #user #{name} <#{email}> 

输出<div id="user">tj &lt;tj@vision-media.ca&gt;</div>

用法示例:

 mixin foo(item) p Foo called mixin bar(item) p Bar called mixin twoColumns(obj) .container-fluid .row(class=obj.class) for item in obj.items .col-xs-12.col-sm-3 +#{item.template}(item)