定义自定义数据类型

Define Custom Data Type

我正在尝试通过扩展 SimpleType 来定义自己的自定义数据类型。我想将它绑定到一个输入字段。但是我一定是做错了什么,因为我的自定义类型被完全忽略了。

这是我的片段:

sap.ui.define([
    "sap/ui/model/SimpleType",
    "sap/ui/model/ValidateException"
], function (SimpleType, ValidateException) {
    "use strict";

    return SimpleType.extend("my.model.customFloat", {

        formatValue: function(oValue) {

            return parseFloat(oValue);
        },
        parseValue: function(oValue) {


            if(isNaN(parseFloat(oValue))) {
                return 0.0
            }

            return parseFloat(oValue);
        },
        validateValue: function(oValue) {
            if(isNaN(parseFloat(oValue))) {
                throw new ValidateException(oValue+" is not a valid decimal value");
            }
        }

    });

});

在我的 view.xml 中,我以这种方式使用了我的自定义类型。

<Input value="{ path:'draftModel>SomeCustomValue', type: 'my.model.customFloat'}" change="onEditDoSomething"/>

但是没用。当我键入内容并想要调试 parseValue、formatValue 或 validateValue 时,这些方法从未被调用。我做错了什么?

您还需要在某处加载您的自定义类型。

尝试将 "my/model/customFloat" 添加到控制器的定义部分。没有必要把它变成别名,例如:

sap.ui.define([
        "sap/ui/model/SimpleType",
        "sap/ui/model/ValidateException",
        "my/model/customFloat"
    ], function (SimpleType, ValidateException) {
        "use strict";
        ...