2012-11-05 22 views
7

私はbase.htmlからハンドルバーを使用して他のテンプレートにテンプレート継承しようとしています。ハンドルバーのテンプレート継承

シンプルなデモで誰も助けてくれますか?私はbase.htmlに含める必要のあるファイルbase.htmlと、extend.html

例えば、 Base.html

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

Extend.html

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

.... ..?

+1

テンプレートは、IDのスクリプトタグ内にある必要があります。タイトルタグのテキストはテンプレートを必要とせず、単なるテキストです。 extend.htmlとbase.htmlの間の関係は説明していません。 – charlietfl

答えて

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

「ブロック」をサポートするように部分を拡張することもできます。this gistを参照してください。

0

ハンドルバーは、テンプレートの継承をすぐに提供しません。

しかし、テンプレートの継承を行うために必要なヘルパーを提供するライブラリがあります。私のお気に入りはWax Onです。これはPugとDjangoのテンプレート継承に基づいており、期待どおりに動作するためです。

少し異なって動作するhandlebars-layoutsもありますが、必要に応じてクライアント側も実行できます。

関連する問題