我的休息服务向我公开了一组字段:每个字段都有一个value
和一个属性列表:enabled
,maxLength
(如果是字符串),{{1} (如果是字符串),minLength
(十进制数字 - 如果是浮点数)。
在OpenUi5中,我有:
decimals
和value
是enabled
控件Link的属性(好!!我可以使用模型绑定属性包含属性)Input
和maxLength
是String
type和Float
type( Link )的选项,但我无法将选项绑定到型号: - / decimals
我找不到属性/选项我想用组件映射(绑定)每个属性,以便在不编写更多代码的情况下自动为我控制库。
答案 0 :(得分:1)
maxLength
控件有一个名为Input
的属性。
所以我看到的唯一问题是绑定minLength和小数,需要付出一点点努力。
解决方案
示例代码结构:
jQuery.sap.require("sap.m.Input");
jQuery.sap.declare("sap.m.ComplexInput");
sap.m.Input.extend("sap.m.ComplexInput", {
metadata: {
properties: {
minLength: {
type: "int"
},
decimals: {
type: "int"
},
events: {
//define your own events like checkMinLength,checkDecimals
}
},
onInit: function () {
//on init do something
},
onAfterRendering: function () {
//called after instance has been rendered (it's in the DOM)
},
_somePrivateMethod: function () {
/*do someting...*/
},
somePublicMethod: function () {
/*do someting...*/
},
}
});
sap.m.ComplexInput.prototype.exit = function () {
/* release resources that are not released by the SAPUI5 framework */
//do something
};
将其他属性绑定到customData
的值var input = new sap.m.Input({
value: '{value}',
enabled: '{enabled}',
maxLength: '{maxLength}',
customData: [
new sap.ui.core.CustomData({
key: 'minLength',
value: '{minLength}'
}),
new sap.ui.core.CustomData({
key: 'decimals ',
value: '{decimals}'
})
],
change: function(oEvent) {
var src = oEvent.getSource();
var minLen = src.getCustomData()[0].getValue();
var decimals = src.getCustomData()[1].getValue();
if (src.getValue() && src.getValue().length > minLen) {
src.setValueState('Success');
} else {
src.setValueState('Error');
}
}
});