跳转到主要内容

轻松将Handlebars.js模板嵌入到您的Django模板中

项目描述

django-templatetag-handlebars 允许您将 Handlebars.js 模板嵌入到您的Django模板中。

大部分模板标签代码来自 Miguel Araujo的原始片段

安装

pip install django-templatetag-handlebars

用法

  • templatetag_handlebars 添加到您的 INSTALLED_APPS

  • 添加HTML标题

{% load templatetag_handlebars %}

<head>
{% handlebars_js %}
...
</head>
  • 调用模板标签,并编写您的Handlebars模板

{% tplhandlebars "tpl-infos" %}
    {{total}} {% trans "result(s)." %}
    <p>{% trans "Min" %}: {{min}}</p>
    <p>{% trans "Max" %}: {{max}}</p>
{% endtplhandlebars %}
  • 以下块将显示在您的页面上

<script type="text/x-handlebars" id="tpl-infos">

    {{total}} result(s).
    <p>Min: {{min}}</p>
    <p>Max: {{max}}</p>
<script>
  • 在客户端,如往常一样使用 Handlebars.js API进行渲染

var properties = {
    total: 10,
    min: 4,
    max: 5
};

var template = Handlebars.compile($('#tpl-infos').html()),
    rendered = template(properties);
  • 您的渲染字符串已准备好,并等待将其插入DOM中 :)

10 result(s).
<p>Min: 4</p>
<p>Max: 5</p>

高级

有一个 {% verbatim %} 标签可以转义特定部分。例如,您可能希望您的 Handlebars 模板的一部分由Django渲染

<script type="text/x-handlebars" id="tpl-django-form">

    <form>
        {% verbatim %}
            {{#if id}}<h1>{{first}} {{last}}</h1>{{/if}}

            {% trans "Your id is" %} {{ id }}
        {% endverbatim %}
        {{ yourform.as_p }}
    </form>
</script>

使用Ember.js

settings.py 中确保将以下属性设置为 True。这是由于 Ember.js 期望略有不同的脚本id声明

USE_EMBER_STYLE_ATTRS = True

脚本块将被渲染为 `<script type="text/x-handlebars" data-template-name="%s">`

作者

makinacom

类似工具

许可证

  • GNU Lesser General Public License

  • Handlebars.js 在MIT许可证下发布 - 版权所有 2011 Yehuda Katz

变更日志

1.3.1 (2016-01-04)

  • 添加Python3兼容性(感谢Tadas Dailyda)

1.3.0 (2015-05-26)

  • 添加Django 1.8兼容性(感谢@markvl)

1.2.0 (2012-05-30)

  • 添加与Ember.js的兼容性(通过设置启用,默认为False)。请参阅README.rst。

1.1.0 (2012-03-26)

  • 移除使用模板标签的模板Egg加载器的依赖

1.0.1 (2012-03-16)

  • 修复打包

1.0.0 (2012-03-16)

  • 初始工作版本

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

django-templatetag-handlebars-1.3.1.zip (28.3 kB 查看散列值)

上传时间

由以下支持