1

有没有人能够在rootViewSAPUI5(或 OPENUI5)组件的元数据中的参数中指定 JSON 视图。我的最终目标是使用 JSON 视图实现与这个“最佳实践”演示应用程序类似的东西。

在“应用程序最佳实践”UI5 演示应用程序中,component.js 文件包含一个元数据参数:rootView: "sap.ui.demo.tdg.view.App"它指向一个同名的 XML 视图,声明如下:

<mvc:View
  xmlns:mvc="sap.ui.core.mvc"
  displayBlock="true"
  xmlns="sap.m">
  <SplitApp id="idAppControl" />
</mvc:View>

此外,路由器配置包含viewType : "XML".

我没有看到在参数中指定 JSON 视图的示例rootView,但没有看到说明此参数仅适用于 XML 视图的文档。我自己没有创建以下 App.view.json 文件的运气:

{
"Type": "sap.ui.core.mvc.JSONView",
"controllerName": "sap.ui.demo.tdg.view.App",
"content": [
    {
      "Type": "sap.m.SplitApp",
      "id": "idAppControl" /*,
    }
  ]
}

并改变viewType : "JSON".

4

1 回答 1

3

如果您使用的是 Component.js,那么在 createContent 方法中,您可以返回任何类型的根视图。例如,我在我的 Component.js 文件中找到了与您类似的元数据配置。

在同一个文件中,我有一个函数 createContent,它在组件初始化时调用,在这个方法中,我返回一个 JS 类型的视图。您没有理由不能返回 JSON 视图。因此,将此参数类型更改为您选择的类型,即 JSON。

jQuery.sap.declare("my.app.Component");
jQuery.sap.require("my.app.MyRouter");

sap.ui.core.UIComponent.extend("my.app.Component",{
    metadata : {
        dependencies : {
            libs : [ "sap.m", "sap.ui.layout" ],
            components : []
        },
        rootView : "my.app.view.App",
       etc...
    },
    ...
    createContent : function() {

        // create root view
        var oView = sap.ui.view({
            id : "idApp",
            viewName : "view.App",
            type : "JSON", // <-- change this to JSON
            viewData : {
                component : this
            }
        });

        // done
        return oView;
    }
});

干杯

于 2015-04-30T06:59:47.350 回答