2013-03-15 80 views
0

在新的EmberRC1版本中,似乎我們無法從創建的對象中調用超類方法。我有一些標準的混合和視圖,我用它來創建或擴展到其他對象。我有一些方法重寫,但仍然需要執行超級方法,我們可以在以前的版本中使用this._super()。但在新版本中,當我創建一個對象時,這不會發生。當創建對象時this._super()問題

window.App = Ember.Application.create(); 

App.Router.map(function(){ 
    this.resource("users"); 
}); 

App.UsersView = Ember.ContainerView.extend({ 
    init : function(){ 
     this._super(); 
     this.pushObject(App.TestView.create({ 
      didInsertElement : function() { 
       this.$().append(' <br><h4>Appended at Object</h4> '); 
      } 
     })) 
    } 
}); 

App.TestView=Ember.View.extend({ 
    templateName:'test', 
    didInsertElement : function() { 
     this.$().append(' <br><h4>Appended at Class</h4> '); 
    } 
}); 

因此,這部分完全去除,或者我們可以達致這超級調用一些其他的方式?

要了解我的問題,請撥打jsfiddle

PS:我知道我可以讓代碼需要用其他方法名執行並調用相同的方法。但如果我有解決方案,這將是很好的。

回答

1

您仍然可以從init方法調用this._super(),它將調用父類。已經刪除的內容是在對象上調用create,並傳入init方法。有一個createWithMixin方法仍然允許這個功能。

有關於這個功能在這裏一個非常詳細的帖子:

Difference between .create() and .createWithMixins() in ember