2012-11-13 53 views
1

我使用Ember和Django並迅速發現手柄中的模板分隔符與Django模板的衝突。如何解決餘燼手柄和Django模板之間的衝突

所以我intsalled Django的餘燼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); 
    } 
}); 

並試圖用Rendeer它:

{% load ember %} 
{% handlebars "" %} 
{{#each Songs.songsController}} 
     <h3>{{title}}</h3> 
     <p>{{artist}} - {{genre}}</p> 
{{/each}} 
{% endhandlebars %} 

沒有得到outputed!

而且它無關,與我的代碼,因爲我感動outsite Django的模板和JS文件和測試代碼,它按預期工作即可。

請告訴這裏出了什麼問題!

+2

如果你在'init'函數的起始處調用this._super(),它會起作用嗎? –

+0

另外,你有沒有考慮將模板作爲字符串注入到'Ember.TEMPLATES'中,而不是在'script'標籤中聲明它? – MilkyWayJoe

回答

1

init函數是所有Ember對象的構造函數。基本上,爲了在創建對象時創建所有綁定/觀察者的東西,在重寫構造器時必須調用類層次結構的構造函數。事實上,這就像你會在其他編程語言中那樣做。

相關問題