javascript模板继承

时间:2010-09-07 00:05:47

标签: javascript templates

在Django框架中,网页模板可以从其他模板继承。在子模板中,您可以定义代码块,这些代码块覆盖父模板中的命名块。我猜测还有其他后端模板系统也可以这样工作,但Django是我熟悉的。

任何现有的javascript模板系统是否支持django样式的继承?

7 个答案:

答案 0 :(得分:5)

如果你想要模板继承和DTL语法,你正在寻找的是 Nunjucks

http://mozilla.github.io/nunjucks/

答案 1 :(得分:0)

Mustache.js支持partials,它以类似的方式工作。除此之外,我还没有找到任何东西 - 也许我会成功......

*好吧,他们并不像Django的模板一样,但它们是我能找到的最接近的模拟物。

答案 2 :(得分:0)

jQuery模板有一个{{wrap}}模板标签,类似于extend:

http://api.jquery.com/template-tag-wrap/

答案 3 :(得分:0)

虽然它不是“模板继承”,但是 Beard.js可以通过创建模板引用来帮助您重复使用模板,我认为这可以帮助您实现相同的目标。

http://jspopisno1.github.com/Beard/#exmp_syntax-reference

答案 4 :(得分:0)

查看Handlebars.js。它允许您定义辅助方法,您可以使用它们来区分不同的块,并以类似于Rails'content_for :my_areayield :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