簡體   English   中英

SAPUI5:詳細視圖控制器 - 訪問數據

[英]SAPUI5: Detail View Controller - Access Data

我被我的小 UI5 應用程序困住了。 這是一個主/詳細應用程序,具有相應的 2 個視圖。 我想訪問詳細信息控制器內的選定數據集。 視圖和應用程序本身可以工作。 我可以在詳細視圖中顯示數據。

但我需要控制器中的數據。 我花了幾個小時閱讀,我相信它一定很簡單。

handleRouteMatched的細節控制器中,我定義了一個新變量var dataObject = this.getView().bindObject(oPath);

當我調試dataObject我看到數據在那里(但所有數據不僅僅是選定的數據)。 它在“未定義”的深處Chrome 調試器圖片

Chrome 調試器 2 我不知道如何掌握這個。 有人可以幫忙嗎?

編輯:

var sContext = this.getView().oController.sContext; //Retrieve context
var oModel = this.getOwnerComponent().getModel(); // Aquire the model
console.log(oModel.getProperty("/" + sContext + "/Businesstravel"));

這就是我最終讓它工作的方式。 雖然獲得整個記錄會很好(不僅僅是單個字段)。

  1. 獲取綁定上下文的對象。
  2. 獲取此上下文,並從中獲取路徑。
  3. 使用路徑從您的模型中獲取相應的數據

像這樣:

var oView = this.getView().byId('DetailPage1');
var sPath = oView.getBindingContext('myModelName').getPath();
var myData = this.getView().getModel('myModelName').getProperty(sPath);

編輯

好吧,我沒有遵循您的所有代碼,但測試了兩件對您有幫助的事情。

首先,要獲取路線中的參數,我在您的 detailPage1 控制器中使用

onInit: function(){
this.oRouter = sap.ui.core.UIComponent.getRouterFor(this);
this.oRouter.getRoute("DetailPage1").attachPatternMatched(this._onObjectMatched, this);
...
},

_onObjectMatched: function(oEvent) {
  var contextFromRouterParameter = oEvent.getParameter("arguments").context;
  console.log('contextFromRouterParameter: ' + contextFromRouterParameter);
},

其次,要獲取您的模型(您在清單中定義它,因此它是在組件級別設置的),您需要執行以下操作:

var oModel = this.getOwnerComponent().getModel();

無論您想在哪里檢索它。 然后你可以使用它的功能,比如: getProperty(sPath)正如我之前提到的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM