我刚开始学习Node.js,所以我正在构建非常简单的应用程序来练习基础知识。我试图让一些类似于Django的模板继承起作用,但是我有点不知道该怎么做。
我了解到库“express-handlebars”包括布局概念,我认为这可能是最好的方法,但是乍一看,我不知道它是否允许超过一层的继承,或者使用它来替换不同的块(我看到一个通用的布局,其他模板被插入在{{{body}}}标记的位置,尽管可能还有更多的技巧)。
因此,我的问题是:如何实现多层模板继承(还有子模板将内容插入到不同的单独块中,而不是一个块中)?我正在使用Node.js、Express和handlebars,但是如果后两者不支持,我不介意尝试其他框架或模板语言。
谢谢!
编辑:
以下是我想要的伪代码示例:
首先,我们可以有一个普通的外部模板:
处理内部模板的结果将是:
我了解到库“express-handlebars”包括布局概念,我认为这可能是最好的方法,但是乍一看,我不知道它是否允许超过一层的继承,或者使用它来替换不同的块(我看到一个通用的布局,其他模板被插入在{{{body}}}标记的位置,尽管可能还有更多的技巧)。
因此,我的问题是:如何实现多层模板继承(还有子模板将内容插入到不同的单独块中,而不是一个块中)?我正在使用Node.js、Express和handlebars,但是如果后两者不支持,我不介意尝试其他框架或模板语言。
谢谢!
编辑:
以下是我想要的伪代码示例:
首先,我们可以有一个普通的外部模板:
<html>
<head></head>
<body>
<h1> Main Title </h1>
<h2> {{section name block}} </h2>
<h3> {{subsection name block}} </h3>
{{content block}}
</body>
</html>
然后再在其下方添加一个(中间模板),替换外层模板的一些块(可能还要添加其他块):
{{inheriting from outer template}}
{{section name block}} Section Three {{/block}}
最后是一个内部函数,这将是从JavaScript代码中调用的函数:
{{inheriting from middle template}}
{{subsection name block}} Subsection Two {{/block}}
{{content block}}
<p>This is the content of Section Three, Subsection Two.</p>
{{/block}}
处理内部模板的结果将是:
<html>
<head></head>
<body>
<h1> Main Title </h1>
<h2> Section Three </h2>
<h3> Subsection Two </h3>
<p>This is the content of Section Three, Subsection Two.</p>
</body>
</html>