是否有人能够在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"
。
答案 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;
}
});
干杯