SAP UI5 資料型別(data type) 學習筆記
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()。