OData 模型是服务器端模型,这意味着数据集仅在服务器上可用,客户端即 SAP UI5 利用只晓得以后可见(申请)的数据。排序和过滤等操作在服务器上实现,而后将处理结果返回给客户端。客户端向服务器发送申请并显示返回的数据。
留神:对后端的申请由 ODataModel 提供的列表绑定 (ODataListBinding)、上下文绑定 (ODataContextBinding) 和 CRUD 函数触发。属性绑定 (ODataPropertyBindings) 不会触发申请。
SAP UI5 实现了以下两个版本的 OData 模型:sap.ui.model.odata.ODataModel 和 sap.ui.model.odata.v2.ODataModel。v2.ODataModel 具备改良的功能集,新性能将仅在此模型中实现。sap.ui.model.odata.ODataModel 已弃用。咱们倡议仅应用 v2.ODataModel。
如下图所示:
对于 OData 服务,开发人员能够应用 URL 参数进行配置。SAPUI5 依据各自的绑定主动设置大多数 URL 参数。
例如,对于身份验证令牌或惯例配置选项,能够向申请 URL 增加其余参数。某些参数不能蕴含在每个申请中,而只能增加到特定的列表或上下文绑定中,例如 $expand 或 $select。为此,绑定办法提供了传递参数映射的选项,而后将其蕴含在针对此特定绑定的所有申请中。OData 模型目前仅反对 $expand 和 $select。
上面是几种增加参数到 Service url 的方法:
第一种:
// "ODataModel" required from module "sap/ui/model/odata/v2/ODataModel"
var oModel = new ODataModel("http://myserver/MyService.svc/?myParam=value&myParam2=value");
这些参数将蕴含在发送到 OData 服务器的每个申请中。
还能够传递仅用于 $metadata 申请的 URL 参数 (metadataUrlParams) 以及仅蕴含在数据申请中的 URL 参数 (serviceUrlParams)。参数作为映射传递:
// "ODataModel" required from module "sap/ui/model/odata/v2/ODataModel"
var oModel = new ODataModel({
serviceUrl: "http://services.odata.org/Northwind/Northwind.svc",
serviceUrlParams: {
myParam: "value1",
myParam2: "value2"
},
metadataUrlParams: {
myParam: "value1",
myParam2: "value2"
}
});
Custom HTTP headers
能够增加随每个申请发送的自定义标头。
向 OData 模型构造函数提供标头映射或应用 setHeaders() 函数:
应用 mparameters 映射传递自定义标头:
var oModel = new sap.ui.model.odata.v2.ODataModel({
headers: {
"myHeader1" : "value1",
"myHeader2" : "value2"
}
});