1

我正在使用 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 文件移到了 django 外部并测试了代码,然后它按预期工作。

一定要告诉这里出了什么问题!

4

1 回答 1

1

init函数是所有 Ember 对象的构造函数。基本上,为了在创建对象时放置所有绑定/观察者的东西,在覆盖构造函数时必须调用类层次结构的构造函数。事实上,这就像你在其他编程语言中所做的一样。

于 2012-11-14T08:01:45.283 回答