Sapui5 定义自定义数据类型

Sapui5 定义自定义数据类型,sapui5,sap-fiori,Sapui5,Sap Fiori,我试图通过扩展SimpleType来定义自己的自定义数据类型。我想把它绑定到一个输入字段上。但我肯定做错了什么,因为我的自定义类型被完全忽略了 这是我的小点心: sap.ui.define([ "sap/ui/model/SimpleType", "sap/ui/model/ValidateException" ], function (SimpleType, ValidateException) { "use strict"; return SimpleTyp

我试图通过扩展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");
            }
        }

    });

});
在my view.xml中,我以这种方式使用了自定义类型

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


但它不起作用。当我键入一些内容并希望调试parseValue、formatValue或validateValue时,这些方法从未被调用。我做错了什么?

您还需要在某个地方加载自定义类型

正在尝试将“my/model/customFloat”添加到控制器的define部分。无需将其转换为别名,例如:

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

您还需要在某个地方加载自定义类型

正在尝试将“my/model/customFloat”添加到控制器的define部分。无需将其转换为别名,例如:

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