Wex5父子页面方法相互调用

父子页面分为两种,
1.windowDialog 是弹出的子页面,
2.windowContainer 是内嵌的子页面!

在子页面中获取父页面的model对象 this.getParent() 或者 this.getParentModel() 可以获取到父页面的model对象,然后就可以访问父页面任意的方法和属性。直接操作父页面

在父页面中,也可以通过this.comp(‘windowContainer 或者 windowDialog 的Xid’).getInnerModel() 获取子页面的model对象!然后直接操作子页面!
(注意:子页面必须加载过了才可以调用,否则或报错的!可以先判断

if(windowDialog.getInnerModel()) {
//子页面已经初始化了,可以执行代码
}else{
//子页面还没有初始化
}
)

 

方法中先做判断,if(this.comp(‘windowContainerXid’).getInnerModel())
条件如果为false,说明子页面还没有加载!就执行this.comp(‘windowContainerXid’).load() 加载子页面

然后直接用父(子)medol.方法名()调用在这里官方文档解释的是获取到VM是实例,没想到VM实例调用方法直接调用的

var dynamicMessageModel = this.comp("windowContainer4").getInnerModel();
dynamicMessageModel.messageFilter(groupId);

 

当然。也可以在打开子页面的时候,将父页面的对象直接传参过去(任意)!接受到参数可以直接操参数,因为是单页应用,所以代码的运行环境是一致的!

posted @ 2018-02-06 23:02  杜小二  阅读(1871)  评论(0编辑  收藏  举报