我已经定义了一个容器视图,我想动态地将子视图添加到属性' 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个子节点,但页面似乎没有更新,那么问题是什么
答案 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);