【发布时间】:2017-03-09 03:02:53
【问题描述】:
我想创建一个模型并将其设置为组件的 oninit 方法中的全局模型之一。我有一个只有实体类型的 sap 网关 odata 服务,并且没有相应的实体集。
我的 ui5 项目有 manifest.json 和默认模型和 component.js 是否可以仅使用元数据创建模型。
【问题讨论】:
我想创建一个模型并将其设置为组件的 oninit 方法中的全局模型之一。我有一个只有实体类型的 sap 网关 odata 服务,并且没有相应的实体集。
我的 ui5 项目有 manifest.json 和默认模型和 component.js 是否可以仅使用元数据创建模型。
【问题讨论】:
初始化模型时,您只需要用于初始化 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 对象看起来像这样
这样你就可以创建一个新的 JSON 模型了
var oODataJSONModel = new sap.ui.model.json.JSONModel({"Selection" : oEntity.property });
【讨论】: