[英]Template inheritance with Node.js, Handlebars and Express
我刚刚开始使用Node.js,所以我正在构建非常简单的应用程序以便练习基础知识。 我试图让一些像Django一样的模板继承工作,但我对如何做它有点不知所措。
据我所知,图书馆“快递把手”包含了布局的概念,我认为这可能是最好的方法,但乍一看我不知道它是否允许不止一步的继承,或者使用它来替换不同的块(我看到了插入其他模板的一般布局代替{{{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>
Swig似乎有这个功能
http://paularmstrong.github.io/swig/docs/#inheritance
没有亲自使用它,但看起来像PHP的Twig一样的继承语法,所以应该没问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.