gpt4 book ai didi

javascript - Node.js、Handlebars 和 Express 的模板继承

转载 作者:搜寻专家 更新时间:2023-10-31 23:09:15 24 4
gpt4 key购买 nike

我刚刚开始使用 Node.js,所以我正在构建非常简单的应用程序以练习基础知识。我试图让一些类似 Django 的模板继承工作,但我对如何去做有点不知所措。

我知道库“express-handlebars”包含布局的概念,我认为这可能是最好的方法,但乍一看我不知道它是否允许多于一个步骤继承,或者用它来替换不同的 block (我看到了一个通用布局,其中插入了其他模板来代替 {{{body}}} 标签,尽管它可能有更多的技巧)。

那么,我的问题是:如何实现多层模板继承(还有,子级将内容插入不同的单独 block ,而不是单个 block )?我正在使用 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>

然后是它下面的另一个(中间模板),替换一些外部 block (并可能添加其他 block ):

{{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>

最佳答案

它不是 100% 清楚您对模板的术语“继承”的要求,但 Handlebars 模板可以包含模板,这些模板可以包含其他模板,这些模板可以包含模板,因此您可以嵌套任意深度。

例如,我只使用语法:

{{> common_header}}

common_header 模板嵌入到当前模板中。 common_header 本身可以在其中嵌入其他模板等等。


您还可以使用布局(已讨论 here),它允许您拥有一个类似主模板的模板,可以将不同的内容渲染到其中。


仅供引用,这里讨论了使用 Handlebars 的类似 Django 的模板继承 herehere和 Handlebars 的布局扩展 here以及更多关于在 Handlebars 中使用布局的讨论 here .


关于javascript - Node.js、Handlebars 和 Express 的模板继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28863097/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com