Django Ember help integrates Ember.js in Django. It use Django.js as base and is inspired from:
Django Ember requires Python 2.6+, Django 1.4.2+ and Django.js 0.7.6+.
You can install Django Ember with pip:
pip install django-ember
or with easy_install:
easy_install django-ember
Add djangojs
and ember
to your settings.INSTALLED_APPS
.
Django Ember depends on Django.js. It will be installed by pip/easy_install.
If you want to use Django.js feature, add djangojs
to your settings.INSTALLED_APPS
.
You can either:
- load the template tag lib into each template manually:
{% load ember %}
- load the template tag lib by adding to your
views.py
:
from django.template import add_to_builtins
add_to_builtins('ember.templatetags.ember')
Tag | JS Library |
---|---|
{% handlebars_js %} |
Handlebars.js (1.0.0-rc.4) |
{% ember_js %} |
Ember.js (1.0.0-RC.6.1) |
{% ember_data_js %} |
Ember Data (0.13-78-g9602df4) |
{% tastypie_adapter_js %} |
Ember Data Tastypie Adapter (9db4b9a) |
{% ember_full_js %} |
Ember.js + Handlebars.js + jQuery (optionnal) |
{% emberpie_js %} |
Ember.js + Handlebars.js + jQuery (optionnal) + Ember Data + Tastypie Adapter |
Exemple:
<head>
{% ember_full_js %}
...
</head>
Will render into insert the follwing JS lib script tags:
- Ember.js
- Handlebars.js
- jQuery
jQuery loading is optionnal for {% ember_full_js %}
and {% emberpie_js %}
tags.
Simply set jquery
keyword to false:
{% ember_full_js jquery=false %}
{% emberpie_js jquery=false %}
If settings.DEBUG=True
the unminified versions of library is loaded
instead of the minified versions if settings.DEBUG=False
.
Django Ember the {% handlebars %}
allow to easily write handlebars template for Ember.js.
Call the template tag, and write your Handlebars template:
{% handlebars "tpl-infos" %}
{{total}} {% trans "result(s)." %}
<p>{% trans "Min" %}: {{min}}</p>
<p>{% trans "Max" %}: {{max}}</p>
{% endhandlebars %}
The following block will be rendered in your page:
<script type="text/x-handlebars" data-template-name="tpl-infos">
{{total}} result(s).
<p>Min: {{min}}</p>
<p>Max: {{max}}</p>
<script>
There is a linkTo helper:
<li class="nav">{% linkto "about" %}About{% endlinkto %}</li>
The following block will be rendered in your page:
<li class="nav">{{#linkTo "about"}}About{{/linkTo}}</li>
When using verbatim
style tags sometimes it is hard to spot what
is Ember and what is Django; the purpose of this generic ember
tag is
making it easier.
Usage:
{% ember varname %}
{% ember #tagname arg1 "arg2" ... argn %} ... {% ember /tagname %}
{# example: #}
{% ember #if spam %}
SPAM: {% ember spam %}
{% ember else %}
No spam for you. Try with eggs.
{% ember /if %}
This will render as:
{{varname}}
{{#tagname arg1 "arg2" ... argn}} ... {{/tagname}}
{{#if spam}}
SPAM: {{spam}}
{{else}}
No spam for you. Try with eggs.
{{/if}}
- Lesser GNU Public License
Handlebars.js
is released under the MIT license - Copyright 2011 Yehuda Katz