我想创建一个模型并将其设置为组件的oninit方法中的全局模型之一。我有一个sap网关odata服务只有一个实体类型,并没有相应的实体集。
我的ui5项目有manifest.json,默认模型和component.js是否可以仅使用元数据创建模型。
答案 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对象看起来像这样
使用此功能,您可以创建一个新的JSON模型
var oODataJSONModel = new sap.ui.model.json.JSONModel({"Selection" : oEntity.property });