ember containerview没有更新

时间:2015-07-28 03:06:38

标签: ember.js view

我已经定义了一个容器视图,我想动态地将子视图添加到属性' childviews' ,然后我有以下代码:

export default Ember.ContainerView.extend({
  childViews:['testView'],
  testView:InfopanelView.create(),
  testView2:InfopanelView.create(),
  init:function(){
    this._super();
  },
  addSuccessMessage:function(){    
    this.pushObject(this.get('testView2'));
    console.log(this.get('childViews'));
  }
});

当调用方法addSuccessMessage时,childViews将有2个子节点,但页面似乎没有更新,那么问题是什么

1 个答案:

答案 0 :(得分:0)

原因是我没有操作由ember创建的正确的containeview对象,因为我有以下代码:

{{view "MyNameContainerView"}}

所以这是我应该保存和操作的正确对象,为此,我在ContainerView.extend方法中添加代码:

export default Ember.ContainerView.extend({
  //other code
  didInsertElementpublic:function()
  {
    //save this in somewhere
    xxxxx.set('containerview',this);
  }
});

然后我们可以在任何地方添加childview:

//controller.js
var childview = ChildView.create();
//or xxxx.get('containerview').addSuccessMessage()
xxxx.get('containerview').pushObject(childview);