关于javascript:关于-SAP-UI5-OData-V4-模型的类型自动识别

42次阅读

共计 1680 个字符,预计需要花费 5 分钟才能阅读完成。

除非明确指定类型,否则属性绑定会依据属性的元数据主动确定适当的类型。例如,绑定 {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 拜访原始模型值,但不能将其转换为用户可读的示意格局。

默认状况下,属性绑定会传递一个依据其利用的控件属性的指标类型格式化的值,例如,看上面这段代码:

<Icon src="sap-icon://message-warning" visible="{path :'DeliveryDate', formatter :'.isOverdue'}">

上述的 XML 视图里 Icon 控件的定义会导致谬误,因为 SAP UI5 类型自动识别逻辑会为 DeliveryDate 属性主动断定类型为 DateTimeOffset, 然而该类型无奈将其值格式化为布尔值。

正确的做法是,将其 targetType 设置为 any,以防止类型自动识别逻辑。

<Icon src="sap-icon://message-warning" visible="{path :'DeliveryDate', targetType :'any', formatter :'.isOverdue'}">

挂起的绑定不会发送数据服务申请,也不会触发更改事件。开发人员能够应用其 resume 办法复原挂起的列表或上下文绑定。

绑定 Suspend 和 Resume 的典型利用场景是:

  1. 在视图初始化时,临时 触发对视图中控件的读取申请。

在某些状况下,比方 SalesOrder 的明细页面里有一个字段叫做 Business Partner ID,咱们能够应用 Value help 来查看该 SalesOrder 可能调配的 Business Partner ID 列表。

咱们心愿 SalesOrder 视图初始化时,并不发送 Business Partner 的 OData 数据申请,当且仅当用户应用 Value Help 时再触发。

  1. 屡次批改绑定时防止两头申请

假如咱们想要增加过滤器,并更改列表绑定的排序。如果绑定没有挂起,调用 filter 办法后会触发一次申请,调用 sort 办法后会触发第二次申请。

如果它被挂起,则在复原时仅发送一个具备更新过滤器和排序规范的申请。

正文完
 0