SAP OData V4 模型的绝对绑定和相对绑定模式

如果 SAP UI5 控件使用绑定的路径以正斜杠 / 开头,则这种绑定方式称为绝对绑定(absolute binding);否则就是相对绑定(relative binding).

相对绑定的初始含义是,只要它们没有绑定上下文(binding context),它们就无从显示业务数据。

相对绑定可以从列表绑定(list binding)中获取上下文,其中上下文表示实体集合(entity collection)中某个索引的实体,或者从 context binding的一个实体的上下文绑定中获取上下文。 创建上下文的绑定称为相对绑定的父绑定;

相对绑定是其父绑定的子绑定。 绑定的从属绑定(dependent binding)是绑定本身及其子项的从属绑定的一个集合。

在这里插入图片描述

一旦绑定控件或具有相对绑定的子控件请求数据,绝对绑定就会创建数据服务请求以读取数据。 读取的 URL 路径是模型的服务 URL 与绑定的路径连接。 读取 URL 查询选项是绑定路径(binding path)和模型(model)查询选项的联合; 为绑定覆盖模型查询选项指定的查询选项。

Relative List 绑定 或上下文绑定(context binding)在以下情况下一旦具有上下文, 就会创建数据服务请求:

  1. 相对绑定具有参数,例如 s e l e c t 之 类 的 O D a t a 查 询 选 项 , 或 名 称 以 ‘ select 之类的 OData 查询选项,或名称以 ` selectOData$` 开头的特定于绑定的参数。

  2. 开发人员显式地为列表绑定指定动态过滤器或动态排序器,并使用 sap.ui.model.odata.OperationMode.Server.

在所有其他情况下,相对绑定从创建上下文的父绑定中读取数据。 在自己的数据服务请求的情况下,读取的 URL 路径是模型的服务 URL 与绑定上下文的路径和绑定的路径连接。 将绑定特定参数 $$canonicalPath 设置为 true 以使用从上下文路径计算的规范路径,而不是读取 URL 中的上下文路径。

凡是数据绑定实例创建的数据服务请求,这些绑定实例都会设计一个缓存,来存储数据服务响应的数据。 如果可以从此缓存中提供数据,这些绑定实例不会再次发送数据服务请求。

列表绑定(list binding)读取页面中的数据,即它们仅访问其绑定集合中的某个索引范围; 它们仅在访问尚未读取的索引时才触发新的数据服务请求,即所谓的 Lazy Load 或者延迟加载。

猜你喜欢

转载自blog.csdn.net/i042416/article/details/124480751