SAP|SAP OData V4 模型的绝对绑定和相对绑定模式
SAP OData V4 模型支持下列三种类型的数据绑定:
- List bindings,代表集合类型(Collection) 的绑定,比如
/SalesOrderList
, 绑定实例的类型为sap.ui.model.odata.v4.ODataListBinding
. - 上下文绑定(context binding),基于单个实体(single entity),比如
/SalesOrderList('0500000000')
,绑定实例的类型为sap.ui.model.odata.v4.ODataContextBinding
. - 属性绑定(Property bindings), 代表一个实体或者复杂类型(complex type)中的属性,比如
/ProductList('HT-1000')/Name
. 绑定实例的类型是sap.ui.model.odata.v4.ODataPropertyBinding
.
bindList, bindContext
和 bindProperty
来创建 binding 实例,但通常情况下,应用开发人员绝不会直接调用这些方法,而是采取下列的方式创建 binding 实例。使用 SAP UI5 控件的 bindElement 方法 例子:
oForm.bindElement("{/SalesOrderList('0500000000')}");
这个例子将 form 控件绑定到一个指定的 Sales order 实例上,因此 form 里包含的所有元素,都以相对绑定的方式,显示该销售订单的实例数据。
实际项目应用中,绑定表达式可以更加复杂:
oForm.bindElement({path : "/SalesOrderList('0500000000')", parameters : {$expand : "SO_2_SOITEM", ...}, events : {dataReceived : '.onDataEvents', ...}});
上面展示了如何监听事件
dataReceived
并在自己定义的事件处理函数 onDataEvents
里应对。在 XML 视图里进行绑定声明 【SAP|SAP OData V4 模型的绝对绑定和相对绑定模式】代码如下:
上面的代码,将 Table
控件的 items 属性,绑定到了 OData 集合 /SalesOrderList
上。同时指定了附带的参数:$expand
,这是 OData 的标准语法。
关于 OData V4 绑定路径的详细说明,可以查看其官网。
如果添加了前导斜杠符号 /
,则每个资源路径(相对于服务根 URL,且无 query 选项)都是此模型中的有效数据绑定路径。
例如,可以使用 /EMPLOYEES('A%2FB%26C')
访问带有 key A/B&C
的实体实例。 请注意,需要适当的 URI 编码。
如果绑定的路径以正斜杠 /
开头,则绑定称为绝对绑定; 否则他们被称为相对绑定。 相对绑定的初始含义是,只要它们没有绑定上下文(binding Context),它们就没有可以显示的数据。
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 关于|关于 SAP UI5 OData V4 模型的类型自动识别
- SAP|SAP UI5 应用开发教程之七十四 - SAP UI5 应用使用 OData V4 显示 Table 表格数据的一个陷阱试读版
- SAP|SAP UI5 OData V4 模型的构造方式
- SAP|SAP OData V4 模型支持的一些数据绑定模式
- SAP|SAP UI5 应用的 Component.js 文件是如何在运行时被加载的()
- SAP|SAP Spartacus 开源项目里 activeCartId$ 的实现
- 基于边缘计算 Client-Edge-Server 业务模型实践
- CSAPP读书笔记--第八章 异常控制流
- CSAPP第二個實驗bomblab
- EasyNLP开源|中文NLP+大模型落地,EasyNLP is all you need