【问题标题】:How to get parent view oData model in SAPUI5?如何在 SAPUI5 中获取父视图 oData 模型?
【发布时间】:2017-07-04 08:58:11
【问题描述】:

我在 SAPUI5 中有一个主从应用程序(该应用程序是由 WebIde 模板应用程序制作的)。 App 内部的视图设置为忙,我需要取消子视图中的视图。因此我需要访问父视图。

所以在Master.controller.js 我需要访问所有者组件视图。所有控制器都继承自 BasicController 并具有setModelgetModel 功能。在App.controller.js 里面有这样一行:

this.setModel(oViewModel, "appView");

我无法通过以下方式在主控制器中访问此视图模型:

this.getModel("appView");

它返回undefined。有命令可以获取所有者组件:

this.getOwnerComponent()

但是我怎样才能查看所有者组件或其OViewModel

【问题讨论】:

    标签: sapui5


    【解决方案1】:

    在你的 manifest.json 中查看你的 rootView,它应该是你的 App 控制器。 https://sapui5.hana.ondemand.com/#docs/guide/be0cf40f61184b358b5faedaec98b2da.html

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

    this.getOwnerComponent().getAggregation("rootControl").getModel("appView")
    

    我尝试了 Worklist.controller.js 中的代码,它是https://sapui5.hana.ondemand.com/test-resources/sap/m/demokit/tutorial/worklist/07/webapp/test/mockServer.html 的 UI5 演示项目的一部分,并且运行正常。

    谢谢!

    【讨论】:

      【解决方案2】:

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

      首先掌握 DetailView,然后您可以在那里访问模型。

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

      【讨论】:

      • 我必须在哪里定义IdOfDetailView??在 <mvc:View> 标记中的 Deutil.view.XML 内部?或者是在 Detail.controller.js 中使用的 id 为其创建 JSON 模型。
      • 如果您使用模板,则 id 在 manifest.json 的“targets”部分中定义...“object”:{“viewName”:“Detail”,“viewId”:“xyz” , "viewLevel": 2 }, ... 但是 ids 继承了它们的部分上下文,所以我的 id 看起来像 "application-masterDetail-display-component---xyz" 如果你使用 chrome,你可以打开开发者工具(F12 ) 并在“元素”选项卡中搜索例如“xyz”。在那里你会看到你的完整身份证。
      • 问题是模型已在 App.Controller.js 中定义,并且 App 视图不是 taget 视图的一部分。这是根视图。
      • appView 的相同过程,其 id 定义在 manifest.json "rootView" 搜索此视图并访问模型
      【解决方案3】:

      只要您在括号内使用正确名称的getModel(),您应该可以在任何地方访问您的模型。您是否在 Component.js 或 SAP 建议定义它们的任何地方定义了模型,名为“appView”?

      【讨论】:

      • 是的。它在 App.controller.js 内部定义。我使用了 SAP Web IDE 的模板项目。
      猜你喜欢
      • 1970-01-01
      • 2023-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多