1. 程式人生 > >Wex5父子頁面方法相互調用

Wex5父子頁面方法相互調用

xid ren pid load() 執行 parent body 過去 參數

父子頁面分為兩種,
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);

當然。也可以在打開子頁面的時候,將父頁面的對象直接傳參過去(任意)!接受到參數可以直接操參數,因為是單頁應用,所以代碼的運行環境是一致的!

Wex5父子頁面方法相互調用