如何在SAPUI5中获取父视图oData模型?

如何在SAPUI5中获取父视图oData模型?,sapui5,Sapui5,我在SAPUI5中有一个master details应用程序(该应用程序由WebIde模板应用程序生成)。 应用程序中的视图设置为“忙”,我需要在子视图中取消使用该视图。因此,我需要访问父视图 因此,在Master.controller.js中,我需要访问所有者组件视图。从BasicController继承的所有控制器都具有setModel和getModel功能。而在App.controller.js中,有一行是这样的: this.setModel(oViewModel, "appView");

我在SAPUI5中有一个master details应用程序(该应用程序由WebIde模板应用程序生成)。
应用程序
中的视图设置为“忙”,我需要在子视图中取消使用该视图。因此,我需要访问父视图

因此,在
Master.controller.js
中,我需要访问所有者组件视图。从BasicController继承的所有控制器都具有
setModel
getModel
功能。而在
App.controller.js
中,有一行是这样的:

this.setModel(oViewModel, "appView");
我无法通过以下方式访问主控制器中的此视图模型:

this.getModel("appView");
它返回未定义的
。有一个命令,我可以获取所有者组件:

this.getOwnerComponent()

但是如何查看所有者组件或其
OViewModel

只要在括号内使用正确的名称使用
getModel()。您是否在
组件.js中定义了一个名为“appView”的模型,或者在SAP建议定义它们的任何地方定义了一个模型?

您想从Masterview控制器访问仅在DetailView中定义的模型

首先抓住DetailView,然后可以在那里访问模型

sap.ui.getCore().byId("IdOfDetailView").getModel("appView");

在manifest.json中查看您的rootView,它应该是您的应用程序控制器

将以下代码放入基本控制器中

this.getOwnerComponent().getAggregation("rootControl").getModel("appView")
我在Worklist.controller.js中尝试了该代码,该代码是位于的UI5演示项目的一部分,目前运行正常


谢谢大家!

对。它定义了App.controller.js的内部。我使用了SAP Web IDE的模板项目。我必须在哪里定义
IdOfDetailView
??在
标记中的Deatil.view.XML内部?或者是在Detail.controller.js中使用的id为其创建了一个JSON模型。如果使用该模板,则该id在manifest.JSON的“targets”部分中定义。。。“对象”:{“视图名称”:“详细信息”,“视图ID”:“xyz”,“视图级别”:2}。。。但是id继承了部分上下文,因此我的id看起来像“application masterDetail display component---xyz”。如果使用chrome,您可以打开开发工具(F12)并在“Elements”选项卡中搜索例如“xyz”。在那里,您将看到您的完整id。问题是该模型已在App.Controller.js中定义,而App视图不是taget视图的一部分。它是根视图。在manifest.json“rootView”搜索此视图并访问模型中定义了appView id的相同过程