【问题标题】:Change default delimiters in ember.js更改 ember.js 中的默认分隔符
【发布时间】:2012-08-21 09:47:18
【问题描述】:

(此问题与this one有关)

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

【问题讨论】:

    标签: templates ember.js web2py


    【解决方案1】:

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

    【讨论】:

    • 谢谢。由于 ember.js 在这方面不灵活,而 web2py 是可配置的,我不得不更改 web2py 中的默认分隔符,并处理我所有的视图文件。
    • 真可惜,我认为你可以在这个关于 django 的答案中做同样的事情,即定义一种块分隔符,你可以在其中放置把手模板。所以你不必改变你的实际文件...... :(
    【解决方案2】:

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

    【讨论】:

    • 感谢 Massimo,我就是这么做的。
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 2012-09-13
      • 1970-01-01
      • 2021-04-30
      • 1970-01-01
      相关资源
      最近更新 更多