UI5我们可以仅使用服务模型中的实体类型元数据来创建json模型

时间:2017-03-09 03:02:54

标签: odata sapui5

我想创建一个模型并将其设置为组件的oninit方法中的全局模型之一。我有一个sap网关odata服务只有一个实体类型,并没有相应的实体集。

我的ui5项目有manifest.json,默认模型和component.js是否可以仅使用元数据创建模型。

enter image description here

1 个答案:

答案 0 :(得分:2)

初始化模型时,您只需要初始化SAPUI5 OData模型的元数据。只要元数据在语法上有效,它就不应该成为问题。只有在使用此模型将聚合分配给控件时才需要EntitySet。

更新

可以从模型中获取元数据的详细信息。用它创建一个新的JSON模型。

var oModel = new sap.ui.model.odata.ODataModel("http://services.odata.org/V2/OData/OData.svc");
var metaModel = oModel.getMetaModel();

var oEntitySet = metaModel.getODataEntitySet("Products");   //For getting properties of an Entity Set

//For Entity, you may have to provide the service namespace along, in this case ODataDemo
var oEntity = metaModel.getODataEntityType("ODataDemo.Product"); 

oEntity对象看起来像这样

related SO question

使用此功能,您可以创建一个新的JSON模型

var oODataJSONModel = new sap.ui.model.json.JSONModel({"Selection" : oEntity.property });

这是oEntity Object