关于|关于 SAP UI5 OData V4 模型的类型自动识别
除非明确指定类型,否则属性绑定会根据属性的元数据自动确定适当的类型。 例如,绑定 {DeliveryDate}
将确定类型 sap.ui.model.odata.type.DateTimeOffset
(假设元数据为此属性指定“Edm.DateTimeOffset”),但 {path : 'DeliveryDate', type : 'sap.ui.model.odata.type.String'}
使用硬编码类型 sap.ui.model.odata.type.String 代替(并且不需要元数据)。
除非开发人员对类型进行硬编码,否则无法指定格式选项或约束。
自动类型确定将考虑元数据的约束,即在非 SAP 站点“MaxLength”、“Nullable”、“Precision”和“Scale”上发布的 OData 属性 facetsInformation.
除了 OData 属性方面,还考虑使用以下 OData V4 注释来设置自动类型确定的类型约束:
- Org.OData.Validation.V1.Validation.Minimum
- Org.OData.Validation.V1.Validation.Maximum
- Org.OData.Validation.V1.Validation.Exclusive
sap.ui.model.odata.type.Decimal
的对应约束:minimum, maximum, minimumExclusive 和 maximumExlusive.目前,下列类型支持映射到命名空间 sap 中的相应类型
ui.model.odata.type
:- Edm.Boolean
- Edm.Byte
- Edm.Date
- Edm.DateTimeOffset
- Edm.Decimal
- Edm.Double
- Edm.Guid
- Edm.Int16
- Edm.Int32
- Edm.Int64
- Edm.SByte
- Edm.Single
- Edm.String
- Edm.TimeOfDay
sap.ui.model.odata.type.Raw
并只能用于 as is
访问原始模型值,但不能将其转换为用户可读的表示格式。默认情况下,属性绑定会传递一个根据其应用的控件属性的目标类型格式化的值,例如,看下面这段代码:
上述的 XML 视图里
Icon
控件的定义会导致错误,因为 SAP UI5 类型自动识别逻辑会为 DeliveryDate
属性自动判定类型为 DateTimeOffset
, 但是该类型无法将其值格式化为布尔值。正确的做法是,将其
targetType
设置为 any,以避免类型自动识别逻辑。
挂起的绑定不会发送数据服务请求,也不会触发更改事件。 开发人员可以使用其 resume 方法恢复挂起的列表或上下文绑定。
绑定 Suspend 和 Resume的典型应用场景是:
- 在视图初始化时,暂时
不
触发对视图中控件的读取请求。
我们希望 SalesOrder 视图初始化时,并不发送 Business Partner 的 OData 数据请求,当且仅当用户使用 Value Help 时再触发。
- 多次修改绑定时避免中间请求
filter
方法后会触发一次请求,调用 sort
方法后会触发第二次请求。【关于|关于 SAP UI5 OData V4 模型的类型自动识别】如果它被挂起,则在恢复时仅发送一个具有更新过滤器和排序标准的请求。
推荐阅读
- 关于|关于 SAP UI5 OData V4 模型的 Property Binding 使用介绍
- SAP|SAP OData V4 模型的绝对绑定和相对绑定模式
- SAP|SAP UI5 应用开发教程之七十四 - SAP UI5 应用使用 OData V4 显示 Table 表格数据的一个陷阱试读版
- SAP|SAP UI5 OData V4 模型的构造方式
- SAP|SAP OData V4 模型支持的一些数据绑定模式
- 关于控制台输出 警告 log4j:WARN No appenders could be found for logger
- 关于Androidstudio无法获取到所有的SDk版本,需要挂国内镜像的问题
- SAP|SAP UI5 应用的 Component.js 文件是如何在运行时被加载的()
- SAP|SAP Spartacus 开源项目里 activeCartId$ 的实现
- 关于单页面应用的|关于单页面应用的 Token Storage 设计策略