Javascript 为什么我的自定义控件事件未注册?
我在我的应用程序中使用了一个自定义控件,带有一些属性和行为。但是当我想启动一个事件时,它就不起作用了!相反,它说:“壁炉不是一种功能” 下面是我的控件的一些示例代码:Javascript 为什么我的自定义控件事件未注册?,javascript,sapui5,Javascript,Sapui5,我在我的应用程序中使用了一个自定义控件,带有一些属性和行为。但是当我想启动一个事件时,它就不起作用了!相反,它说:“壁炉不是一种功能” 下面是我的控件的一些示例代码: sap.ui.core.Control.extend("mycontrols.CustomContent", { metadata: { properties: { enabled: {type: "boolean", defaultValue: true},
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)的方法:请参阅
我遗漏了什么?事实上,这是因为“事件”必须是“元数据”的成员!
因此正确的代码应该是:
sap.ui.core.Control.extend("mycontrols.CustomContent", {
metadata: {
properties: {
// etc...
},
events: {
press: {}
}
},
// browser Events:
ontap: function (oEvent) {
this.firePress({}); // -> will work now!
}
});