【发布时间】:2013-04-28 10:10:00
【问题描述】:
我想添加一个基于变量名称的模板。
类似的东西:
include= templateName
【问题讨论】:
-
这在模板语法中是不可能的,因为模板在知道你传递给它们的数据之前就已经编译好了。
-
好的,谢谢,我将使用 if/else then...
标签: javascript node.js templates pug
我想添加一个基于变量名称的模板。
类似的东西:
include= templateName
【问题讨论】:
标签: javascript node.js templates pug
我用 case/when 来解决,比如 switch/case:
case myvar
when 0
include mytemplate0
when 1
include mytemplate1
....
default
p Select option
【讨论】:
这在 Jade 中不起作用是有充分理由的。 Jade 将模板编译成 Javascript,然后执行 Javascript 生成 HTML。必须在编译阶段处理包含,但直到稍后才会评估 Javascript 表达式。因此,Jade 目前无法提供变量包含。
carlituxman 的解决方案之所以有效,是因为它在生成的 Javascript 中包含了所有需要的包含文件,但仅限于包含您提前知道的文件。
【讨论】: