我在我的应用中使用自定义控件,具有一些属性和行为。但是,当我想发射一个事件时,它不起作用!相反,它说:“firePress不是一个功能”。
以下是我控制的一些示例代码:
sap.ui.core.Control.extend("mycontrols.CustomContent", {
metadata: {
properties: {
enabled: {type: "boolean", defaultValue: true},
title: {type: "string", defaultValue: null},
icon: {type: "sap.ui.core.URI", defaultValue: null},
size: {type: "sap.ui.core.CSSSize", defaultValue: "200px"}
}
},
// control events
events: {
press: {enablePreventDefault : true}
},
// browser Events:
ontap: function (oEvent) {
this.firePress({}); // -> not working!
}
});
我已经读过,当你声明一个事件时,UI5框架会自动生成注册(attachYourEvent),取消注册(detachYourEvent)和触发事件(fireYourEvent)的方法:见SAPUI5 custom pseudo-event
我错过了什么?
答案 0 :(得分:2)
实际上,这是因为“事件”必须是“元数据”的成员! 所以正确的代码是:
sap.ui.core.Control.extend("mycontrols.CustomContent", {
metadata: {
properties: {
// etc...
},
events: {
press: {}
}
},
// browser Events:
ontap: function (oEvent) {
this.firePress({}); // -> will work now!
}
});