(この質問はこれに関連しています)
ember.jsコードで拡張したいweb2pyアプリケーションがあります。web2py と ember.js のテンプレート システムの区切り文字が競合します (どちらも{{
と}}
です)。私のアプリケーションには ember.js のレガシーがないため、別の区切り文字を使用して ember.js コードを記述したいと考えています。これは可能ですか?
ember.js が使用するテンプレート エンジンは Handlebars.js であり、区切り文字を変更することはできないと思います。私は他の質問を見てきました.おそらく他の答えはここにあります: DjangoテンプレートのHandlebars.js
web2py の場合: response.delimiters = ('[[',']]')
(web2py 上またはハンドルバー内の) 区切り文字を変更したくない場合は、例えば web2py /static/ フォルダー内のpeople.hbsのような外部ファイルにハンドルバー テンプレートを保存することで実行できます。
{{#each people}}
<div class="person">
<h2>{{first_name}} {{last_name}}</h2>
</div>
{{/each}}
ビューでは、 jQuery load() functionを使用してそのファイルをインポートします。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script src="https://raw.github.com/wycats/handlebars.js/master/dist/handlebars.js"></script>
<div id="list"></div>
<script id="people-template" type="text/x-handlebars-template"></script>
<script type="text/javascript">
$('#people-template').load('/static/people.hbs', function() {
var template = Handlebars.compile($("#people-template").html());
var data = {
people: [
{ first_name: "Alan", last_name: "Johnson" },
{ first_name: "Allison", last_name: "House" },
]
};
$('#list').html(template(data));
});
</script>