在Django框架中,网页模板可以从其他模板继承。在子模板中,您可以定义代码块,这些代码块覆盖父模板中的命名块。我猜测还有其他后端模板系统也可以这样工作,但Django是我熟悉的。
任何现有的javascript模板系统是否支持django样式的继承?
答案 0 :(得分:5)
如果你想要模板继承和DTL语法,你正在寻找的是 Nunjucks :
答案 1 :(得分:0)
Mustache.js支持partials,它以类似的方式工作。除此之外,我还没有找到任何东西 - 也许我会成功......
*
好吧,他们并不像Django的模板一样,但它们是我能找到的最接近的模拟物。
答案 2 :(得分:0)
jQuery模板有一个{{wrap}}模板标签,类似于extend:
答案 3 :(得分:0)
虽然它不是“模板继承”,但是 Beard.js可以通过创建模板引用来帮助您重复使用模板,我认为这可以帮助您实现相同的目标。
答案 4 :(得分:0)
查看Handlebars.js。它允许您定义辅助方法,您可以使用它们来区分不同的块,并以类似于Rails'content_for :my_area
和yield :my_area
的方式回显它们。
答案 5 :(得分:0)
是的,使用Dustjs,您可以让模板从公共基本模板继承其大部分内容。以下是Dustjs的工作原理:(请参阅“块和内联部分”部分)
在文件“base_template”中:
Start
{+title/}
Middle
{+main/}
End
“继承”base_template的模板:
{>base_template/}
{<title}
Child Title
{/title}
{<main}
Child Content
{/main}
结果如下:
Start
Child Title
Middle
Child Content
End
相关问题:似乎只支持1级继承:Is there a way to do more than one level of inheritance value overrides with dust.js?
答案 6 :(得分:0)
在向 Handlebars 添加模板继承方面正在进行一些工作。
请参阅最新的GitHub问题:https://github.com/wycats/handlebars.js/issues/208
这篇博文:Template Inheritance for Handlebars