用于JSONView的SAPUI5组件元数据rootView参数

时间:2015-02-13 05:06:31

标签: json components rootview sapui5

是否有人能够在SAPUI5(或OPENUI5)组件的元数据中的rootView参数中指定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"

我没有看到在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"

1 个答案:

答案 0 :(得分:1)

如果您使用的是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;
    }
});

干杯