SAPUI5 中的数据类型用作验证用户输入的机制(例如,“hello”不是订单数量的可接受值),并确保数据在 UI 上被正确格式化和显示(例如将 1234567 显示为 1,234,567 需要时)。当与支持双向绑定的数据模型结合使用时——这是使用它们的最佳方式——数据类型确保模型中的数据只有在用户提供有效值时才会更新。

用户输入验证也可以通过在事件处理程序中为每个输入字段编写验证逻辑来完成;可以通过在任何显示值的地方编写和使用格式化程序来格式化显示的值。 但显然,这种方法不具备可扩展性——随着应用程序的增长,维持使用这种方法完成的开发所需的工作量会迅速增加。

SAPUI5 框架附带了一些可以在应用程序中使用的常用数据类型。 这些包括布尔值、日期和浮点数。 可以通过指定约束和格式选项来调整使用数据类型的绑定的行为。 约束(如 Float 的最小值和最大值)可用于限制被认为有效的值的范围。 任何违反约束的用户输入都被认为是无效输入,模型中的相应路径将不会被更新。 另一方面,指定格式选项以配置特定值应如何在 UI 上显示(如 Float 的 groupingSeparator 和 decimalSeparator)。 模型中对应路径的值在显示前会根据类型的格式选项进行格式化。 此外,用户还可以输入带格式(如 12,345)或不带格式(12345)的输入,这两者都被认为是有效的。

下图是 SAP UI5 标准的 Integer 数据类型及其 constraints 在 XML 视图中的用法:

如何创建一个 SAP UI5 自定义数据类型?

为了开始创建自定义数据类型,我们扩展了 sap.ui.model.SimpleType 类并覆盖了 SimpleType 父类中定义的 3 个方法——parseValue、validateValue 和 formatValue.

parseValue(sExternalValue)

该方法接收用户的输入作为参数。 该方法的工作是将用户的输入值(外部格式)转换为值的合适的内部表示(内部格式)。

validateValue(sInternalValue)

此方法接收解析的值(即,由 parseValue 方法确定的值的内部表示)并且必须确定该值是否有效。 如果确定输入无效,则应在此方法中抛出 sap.ui.model.ValidateException 类型的异常。

formatValue(sInternalValue)

该方法接收解析后的值(内部值)作为参数,并且必须返回一个格式化的值(即对应的外部值)。 此格式化值显示在 UI 上。

在我们开始实现我们的自定义数据类型之前,让我们快速看看框架何时调用这 3 个方法中的每一个。 从图中我们可以看出,框架触发这3个方法的顺序是parseValue() -> validateValue() -> formatValue()。

SAP UI5 数据类型(data type) 学习笔记相关推荐

  1. SAP UI5 应用开发教程之五十三 - 如何自定义 SAP UI5 数据类型(Data Type)试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

  2. SAP UI5 初学者教程之十九 - SAP UI5 数据类型和复杂的数据绑定

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 初学者教程之一:Hello World SAP UI5 初学者教程之二:SAP UI5 ...

  3. SAP UI5 应用开发教程之十九 - SAP UI5 数据类型和复杂的数据绑定

    通过本教程前面的步骤SAP UI5 初学者教程之十七 - 聚合绑定在 UI5 复合控件中的使用的介绍,我们已经学会了如何在 SAP UI5 里显示列表,如下图所示: 本步骤我们给该列表添加更多的业务数 ...

  4. 【NDN基础】Named Data Networking 学习笔记

    弄懂的问题: (1)Page 4:PIT表的设计考虑: <1>支持多播数据交付. <2>控制流量负载以实现流平衡. <3>PIT条目是路由器负载的指示器,限制PIT ...

  5. SAP Spartacus的持久化存储学习笔记

    https://sap.github.io/spartacus-docs/configurable-state-persistence-and-rehydration/ Spartacus offer ...

  6. SAP Spartacus Loader Meta Reducer学习笔记 - loaderReducer

    链接:https://sap.github.io/spartacus-docs/loader-meta-reducer/#creating-actions To give better feedbac ...

  7. SAP UI5 aggregation field type

    Aggregation里面的toolbar改成用sap.ui.core/Control: <aggregation cardinality="0..1" name=" ...

  8. 【译】Jep文档(4)——数据类型(Data Type)

    数据类型 在标准模式中,Jep支持许多不同的数据类型,包括数字.字符串.向量(数组)和复数.数字在默认情况下由double类型表示.当然,也可以像自定义类型描述的那样,改变内置表示. 字符串(Stri ...

  9. Learning Active Learning from Data 主动学习笔记

    最近这段时间都在看关于主动学习的文章,现在分享自己看的这篇文章,希望与大家共勉! 这是2017在NIPS上发表的一篇文章:Learning Active Learning from Data 文章目录 ...

最新文章

  1. python wget_python-如何获取wget下载的文件的文件名
  2. React.js绑定this的5种方法
  3. Spark源码分析之九:内存管理模型
  4. 5.【练习题】构造方法与重载
  5. flex将元素放在最后_前端布局——Flex弹性布局
  6. Java8新特性:Stream介绍和总结
  7. 企业数字化转型与中台建设全攻略:什么阶段进行?有哪些方法?
  8. 华为网络技术培训笔记之常用网络工具(一)
  9. 连接spark集群Windows环境搭建
  10. oracle11 g ora 03113,解决oracle11g ORA-32004: obsolete or deprecated parameter(s)
  11. Ubuntu 机箱前置音频接口不能用的解决方法
  12. 人过大佛寺,寺佛大过人
  13. luogu P2706 巧克力
  14. php 上传绕过,文件上传验证绕过技术总结
  15. 什么是ISO?ISO增值的作用
  16. 有没有一款软件是测试阅读准确率的,当今各一线股票软件系统指标准确率测试一览表...
  17. 万字综述智能驾驶车载激光雷达关键技术与应用算法
  18. 4.2.3偏移寻址(19)
  19. 三星 S6 屏幕快照
  20. 入耳式降噪蓝牙耳机哪款好用?主动降噪耳机排行榜10强!

热门文章

  1. el-table操作显示图标,鼠标移入显示弹窗
  2. Python机器学习06——朴素贝叶斯
  3. cmwap和cmnet接入点的区别
  4. 更换域名导致 typecho 加载缓慢
  5. 一个完整的python文件即是一个模块_README.md
  6. python练习6.16
  7. AcWing 125. 耍杂技的牛 (推公式)
  8. APP推广可以耍流氓?这些APP黑科技确实很流氓!
  9. Gulp折腾记 - (2)常用任务构建的demo
  10. “之“字形打印矩阵(Java)