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