2016-03-31 5 views
1

私はFlaskアプリケーションを構築しており、Handlebarsテンプレートを使用してクライアント側でHTMLレンダリングを行っています。 (正確にハンドルバーのチュートリアルのように)、以下のように、私はそれをハンドルバーのテンプレートには文脈が入りません

<script id="source-template" type="text/x-handlebars-template"> 
    <div class="source-data"> 
     <span>{{last4}}</span> 
     <span>Exp : {{exp_month}}/{{exp_year}}</span> 
    </div> 
</script> 

使用しています:私は、以下の非常に基本的なハンドルバーのテンプレートをしている

var source = $('#source-template').html(); 
var template = Handlebars.compile(source); 
var context ={ 
    last4:'1234', 
    exp_month:'12', 
    exp_year:'2020' 
}; 
var html = template(context); 
console.log(html); 

それはしていないようですが

自分のコンテキストからテンプレートにデータを挿入することができます。コンソール出力は

<div class="source-data"> 
    <span></span> 
    <span>Exp :/</span> 
</div> 

ここに何か不足していますか?私は本質的にhandlebars exampleをコピーしたので、何がうまくいかないのか分かりません。

+0

このためのソリューションは、神社が変数としてこれらを解釈しないようにスクリプトの周り{% raw %}を使用することでした。コンソールにエラーがありますか? – SaidbakR

+1

チェックアウト[**このデモ**](http://jsbin.com/hukobulopi/edit?html,console,output) – SaidbakR

答えて

2

私はFlaskを使用しているので、スクリプトはhtmlファイルで書かれており、レンダリングされたファイルはJinjaです。

last4という名前の変数、exp_month、フラスコのrender_template()関数に渡されたor exp_yearがなかったので、それは無い変数をハンドルバーのテンプレートを残し、何でそれらを置き換えます。インストール中に問題があると思われ

<script id="source-template" type="text/x-handlebars-template"> 
    {% raw %} 
    <div class="source-data"> 
     <span>{{last4}}</span> 
     <span>Exp : {{exp_month}}/{{exp_year}}</span> 
    </div> 
    {% endraw %} 
</script> 
+0

Djangoでも同じ問題が発生します。 Djangoがテンプレートを解析しないようにするには、ハンドルバーテンプレートをそのままブロック{%verbatim%}に囲んでください...ハンドルバーテンプレートはここにあります。{%endverbatim%} – jastr

関連する問題