(这个问题与这个有关)
我有一个 web2py 应用程序,我想用一些 ember.js 代码对其进行扩展。web2py 和 ember.js 中模板系统的分隔符冲突(都是{{
和}}
)。由于我的应用程序没有 ember.js 遗留,我想使用不同的分隔符编写 ember.js 代码。这可能吗?
ember.js 使用的模板引擎是 Handlebars.js,我不认为你可以改变分隔符。我已经看到了另一个问题,也许可以在这里找到另一个答案:Handlebars.js in Django templates
在 web2py 中: response.delimiters = ('[[',']]')
如果您不想更改任何分隔符(在 web2py 或车把中),您可以通过将车把模板保存在外部文件(例如web2py /static/ 文件夹中的people.hbs )中来做到这一点
{{#each people}}
<div class="person">
<h2>{{first_name}} {{last_name}}</h2>
</div>
{{/each}}
并在视图中使用jQuery load() 函数导入该文件。
<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>