5

(这个问题与这个有关)

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

4

3 回答 3

4

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

于 2012-08-26T22:58:33.510 回答
3

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

于 2012-08-27T19:46:46.203 回答
1

如果您不想更改任何分隔符(在 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>
于 2013-02-04T22:35:31.300 回答