我正在使用Ember和Django并很快发现Handlebar中的模板分隔符与Django模板的分隔符冲突。
所以我读了Django-embers http://pypi.python.org/pypi/django-ember/0.1
但它似乎无法正常工作。这就是问题所在:
如果我在APP.js中有这样的东西
var Ab = Em.Application.create({
appDescription : 'HelloWorldApp'
});
我可以像这样轻松地在模板中呈现它
{% load ember %}
{% handlebars "" %}
{{Ab.appDescription}}
{% endhandlebars %}
这很有效。 但是当我尝试使用模板标签例如{{#each}}时,事情就失败了。例如,我在APP.js中有这个
Songs.songsController = Ember.ArrayController.create({
content: [],
init: function(){
// create an instance of the Song model
var song = Songs.Song.create({
title: 'Son of the Morning',
artist: 'Oh, Sleeper',
genre: 'Screamo'
});
this.pushObject(song);
}
});
尝试使用以下方式渲染它:
{% load ember %}
{% handlebars "" %}
{{#each Songs.songsController}}
<h3>{{title}}</h3>
<p>{{artist}} - {{genre}}</p>
{{/each}}
{% endhandlebars %}
什么都没有出来!
它与我的代码无关,因为我移动了模板和JS文件outsite django并测试了代码,它按预期工作。
告诉我这里出了什么问题!
答案 0 :(得分:1)
init
函数是所有Ember对象的构造函数。基本上,为了在创建对象时放置所有绑定/观察者的东西,必须在覆盖构造函数时调用类层次结构的构造函数。实际上,这就像你将在其他编程语言中一样。