gpt4 book ai didi

javascript - SAPUI5:详细 View Controller - 访问数据

转载 作者:行者123 更新时间:2023-11-30 20:42:07 25 4
gpt4 key购买 nike

我受困于我的 UI5 小应用。这是一个主/细节应用程序,具有相应的 2 个 View 。我想访问详细信息 Controller 内的选定数据集。 View 和应用程序本身可以正常工作。我可以在详细 View 中显示数据。

但我需要 Controller 中的数据。我花了几个小时阅读,我相信它一定很简单。

handleRouteMatched 的细节 Controller 中,我定义了一个新变量 var dataObject = this.getView().bindObject(oPath);

当我调试 dataObject 时,我看到数据在那里(但所有数据不仅仅是选定的)。它在“未定义”的深处 Chrome Debugger Picture

Chrome Debugger 2而且我不知道如何掌握它。有人可以帮忙吗?

编辑:

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

这就是我最终让它工作的方式。不过,如果能获得整个记录(不仅是单个字段)就好了。

最佳答案

  1. 获取已绑定(bind)上下文的对象。
  2. 获取此上下文,并从中获取路径。
  3. 使用路径从您的模型中获取相应的数据

像这样:

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

编辑

好吧,我并没有完全遵循您的代码,但测试了两件对您有帮助的事情。

首先,要获取我在 detailPage1 Controller 中使用的路由中的参数

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);
},

其次,要获取您的模型(您在 list 中定义它,因此它是在组件级别设置的)您需要执行以下操作:

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

无论你想在哪里取回它。然后你可以像我之前提到的那样使用它的函数:getProperty(sPath)

关于javascript - SAPUI5:详细 View Controller - 访问数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49147272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com