Handlebars的模板继承

11

我正在尝试使用handlebars从base.html继承模板到其他模板。但是我无法做到这一点。

请问,有没有人可以帮我提供一个简单的演示。包括base.html和extend.html。

例如, Base.html

<html><head></head>
<body>
{% block content %}{% endblock %}
</body>
</html>

扩展.html

{% extends "base.html" %}
{% block content %}<h1>Foobar!</h1>{% endblock %}

我需要在base.html中包含哪些文件......?


1
模板需要在具有ID的script标签中。标题标签的文本不需要模板,只是文本而已。您还没有解释extend.html和base.html之间的任何关系。 - charlietfl
express-hbs 支持它。 - mercury
3个回答

3
Handlebars默认不提供模板继承功能。
不过,有一些库提供了必要的helpers来实现模板继承。我最喜欢的是Wax On,因为它基于Pug和Django中的模板继承,并且按照你的预期工作。
还有handlebars-layouts,它的工作方式略有不同,但如果需要,也可以在客户端运行。

1

0
// in my node server: using express and hbs 
hbs.registerPartials(__dirname + '/built/development/templates');
app.get('/', function (req, res) {
  res.render('_base', {
    "STATIC_URL": app.get('STATIC_URL')
  });
});

// This is in my base template 
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" itemscope itemtype="http://schema.org/Article" xmlns:fb="http://ogp.me/ns/fb#"> <!--<![endif]-->
<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# blog: http://ogp.me/ns/blog#">
    {{> _config_logged_out }}
    {{> _scripts }}
</head>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接