基于变量的Jade包含模板

4
我想添加一个基于变量命名的模板。
类似这样: include= templateName

可能是在Jade include中使用变量的重复问题。 - Pickels
2
这在模板语法中是不可能的,因为模板在编译之前甚至不知道您传递给它们的数据。 - Pickels
好的,谢谢。我会使用if/else语句... - Charles
2个回答

1
我使用case/when来解决问题,类似于switch/case:
case myvar
    when 0
      include mytemplate0
    when 1 
      include mytemplate1
    ....
    default
        p Select option

0

这个在Jade中不起作用有一个非常好的原因。Jade将模板编译成Javascript,然后执行Javascript以生成HTML。包含必须在编译阶段进行处理,但是Javascript表达式直到稍后才被评估。因此,目前Jade无法提供可变包含。

carlituxman的解决方案之所以有效,是因为它在生成的Javascript中包含了所有需要的包含文件,但它仅限于您事先知道的包含文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接