JSONView 的 SAPUI5 组件元数据 rootView 参数

SAPUI5 Component Metadata rootView Parameter for JSONView

有没有人能够在 SAPUI5(或 OPENUI5)组件的元数据中的 rootView 参数中指定一个 JSON 视图。我的最终目标是使用 JSON 视图实现类似于此 "Best Practices" 演示应用程序的功能。

在 "Application Best Practices" 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"

我没有看到在 rootView 参数中指定 JSON 视图的示例,但也没有看到说明此参数仅适用于 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"

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

在同一个文件中,我有一个函数 createContent,它在组件初始化时被调用,在这个方法中,我 return 一个 JS 类型的视图。您没有理由不 return 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;
    }
});

干杯