2014-09-12 52 views
1

我是SAPUI5的新手。在SAPUI5中獲取另一個組件上下文

我有兩個組件/文件夾與視圖&控制器命名'視圖'和'tableview'。是否有可能在'tableview'中獲得'view'上下文?

+0

你是什麼視圖上下文的意思還是你的意思在MVC世界視圖控制器? – Allen 2014-09-12 12:53:00

+0

我在名爲'view'的文件夾中有多個views.xml和controller.js文件。同樣的方式,我在名爲'tableview'的文件夾中有多個views.xml和controller.js。現在,我從'tableview'文件夾中加載一個視圖(子視圖),該視圖位於'view'文件夾中的一個視圖(父視圖)中。我想知道是否有任何方法讓孩子訪問父母的背景。 – 2014-09-12 13:35:01

回答

5

如果我理解正確,您正嘗試從子控制器訪問父控制器。這裏有一些建議,下令從入門到專家;)

  1. 最簡單的方法是隻使用全局變量提供參考你所需要的控制器 - 不推薦使用。

  2. 給你父視圖的ID和調用方法上它的控制器是這樣的:。

    sap.ui.getCore()byId( 「parentViewId」)getController()方法();

  3. 可以直接調用一個控制器的方法是這樣的:

    sap.ui.controller( 「namespace.Controllername」)方法();

  4. 我強烈推薦使用sap.ui.core.EventBus控制器(或通用應用程序組件)之間的更多解耦方式進行通信。它實現了被稱爲事件或消息總線恕我直言真正的岩石模式;)

GL 克里斯

+0

謝謝克里斯。我能夠使用sap.ui.controller(「namespace.Controllername」)。method();來調用parentview的方法。 .....有沒有可能在子控制器中訪問父控制器的上下文或'this'對象? – 2014-09-13 06:47:36

+1

sap.ui.controller(「namespace.Controllername」)爲您提供了所謂的父控制器上下文。如果你喜歡,你也可以從中獲得屬性。仍然失蹤? – cschuff 2014-09-13 09:42:28

+0

不,謝謝分享@cschuff – 2014-09-15 07:36:18

相關問題