【发布时间】:2023-03-26 22:48:01
【问题描述】:
我刚刚开始使用 Node.js,所以我正在构建非常简单的应用程序来练习基础知识。我试图让一些类似 Django 的模板继承工作,但我对如何做到这一点有点茫然。
我知道库“express-handlebars”包含布局的概念,我认为这可能是最好的方法,但乍一看我不知道它是否允许不止一个步骤继承,或者使用它来替换不同的块(我看到了一种通用布局,其中插入了其他模板来代替 {{{body}}} 标记,尽管它可能还有更多技巧)。
所以,我的问题是:如何实现多层模板继承(还有,孩子将内容插入不同的单独块,而不是单个块)?我正在使用 Node.js、Express 和车把,但如果后两者无法实现,我不介意尝试其他框架或模板语言。
谢谢!
编辑:
我的意思的伪代码示例:
首先,我们可以有一个通用的外部模板:
<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>
【问题讨论】:
标签: javascript node.js inheritance express handlebars.js