更改ember.js中的默认分隔符

时间:2012-08-26 18:52:49

标签: templates ember.js web2py

(此问题与this one

有关

我有一个web2py应用程序,我想用一些ember.js代码扩展。 web2py和ember.js中模板系统的分隔符冲突(都是{{}})。由于我的应用程序没有ember.js遗留问题,我想使用不同的分隔符编写ember.js代码。这可能吗?

3 个答案:

答案 0 :(得分:4)

ember.js使用的模板引擎是Handlebars.js,我认为你不能更改分隔符。 我已经看到了另一个问题,也许可以在这里找到另一个答案:Handlebars.js in Django templates

答案 1 :(得分:3)

在web2py中:response.delimiters =('[[',']]')

答案 2 :(得分:1)

如果您不想更改任何分隔符(在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>