2013-03-13 52 views
0

隨着新的emberJS RC1版本,我無法將containerView作爲父容器視圖的childView添加。如果ConainerView的childView是另一個containerView,它會拋出錯誤

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

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

App.UsersView = Ember.ContainerView.extend({ 
    init : function(){ 
     this._super(); 
     this.pushObject(Ember.ContainerView.create({ 
    init: function(){ 
     this.pushObject(Ember.View.create({ 
      templateName : 'test1' 
     })); 
    } 
})); 
    } 
}); 

這裏是jsfiddle

回答

0

你不應該使用init函數的對象上設置屬性。如果使用「didInsertElement」它的工作原理:

App.UsersView = Ember.ContainerView.extend({ 
    didInsertElement : function(){ 
     this._super(); 
     this.pushObject(Ember.ContainerView.create({ 
    didInsertElement: function(){ 
     this.pushObject(Ember.View.create({ 
      templateName : 'test1' 
     })); 
    } 
})); 
+0

哦耶與didInsertElement工作......但我想了解的部分,當我能夠在'添加的init(的containerView)孩子的()'的parentView ...我無法做到與childView的containerView相同... wat可能是主要原因嗎?..爲什麼這種區別? – thecodejack 2013-03-13 12:07:47

+0

init() - 方法應該在那裏初始化基本對象的狀態。在你的情況下,你正在使用它來構建複雜的對象圖。這對我來說似乎很尷尬,可能會導致這樣的問題。你正在開始添加一個childView,Ember可能想要執行一些魔術。你不知道,Ember想在你的init方法後做一些必要的「魔術」,對吧? – mavilein 2013-03-15 09:40:20

相關問題