Sapui5 定义自定义数据类型
我试图通过扩展SimpleType来定义自己的自定义数据类型。我想把它绑定到一个输入字段上。但我肯定做错了什么,因为我的自定义类型被完全忽略了 这是我的小点心: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
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";
...