【发布时间】:2012-08-21 09:47:18
【问题描述】:
(此问题与this one有关)
我有一个 web2py 应用程序,我想用一些 ember.js 代码对其进行扩展。 web2py 和 ember.js 中模板系统的分隔符冲突(均为{{ 和}})。由于我的应用程序没有 ember.js 遗留,我想使用不同的分隔符编写 ember.js 代码。这可能吗?
【问题讨论】:
(此问题与this one有关)
我有一个 web2py 应用程序,我想用一些 ember.js 代码对其进行扩展。 web2py 和 ember.js 中模板系统的分隔符冲突(均为{{ 和}})。由于我的应用程序没有 ember.js 遗留,我想使用不同的分隔符编写 ember.js 代码。这可能吗?
【问题讨论】:
ember.js 使用的模板引擎是 Handlebars.js,我认为你不能更改分隔符。 我看过另一个问题,也许可以在这里找到另一个答案:Handlebars.js in Django templates
【讨论】:
在 web2py 中:response.delimiters = ('[[',']]')
【讨论】:
如果您不想更改任何分隔符(在 web2py 或车把中),您可以将车把模板保存在外部文件中,如 people.hbs 以 web2py /static/ 文件夹为例
{{#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>
【讨论】: