在 SAPUI5/OpenUI5 中定义自定义伪事件的最佳实践是什么?
例如,假设我想在按住扩展的 sap.m.Button 几秒钟时触发一个事件。
我不确定是否还有任何“最佳实践”,我真的认为只有“一种”实践;-)但我渴望学习任何其他做法,所以如果有人可以对此发表评论,请不要犹豫!
我认为总体思路就是定义你的活动;然后 UI5 框架会自动生成注册方法(attach<YourEvent>
)、注销(detach<YourEvent>
)和触发事件(fire<YourEvent>
).
例如:
return ControlToExtend.extend("your.custom.Control", {
metadata: {
properties: {
// etc...
},
aggregations: {
"_myButton": {
type: "sap.m.Button",
multiple : false,
visibility: "hidden"
},
// etc...
},
associations: {
// etc...
},
events: {
yourCustomEvent: {
allowPreventDefault: true,
parameters: {
"passAlong": { type: "string" }
}
}
}
},
init: function() {
ControlToExntend.prototype.init.apply(this, arguments);
var oControl = this, oMyButton;
oMyButton = new Button({ // Button required from "sap/m/Button"
// ...,
press: function (oEvent) {
oControl.fireYourCustomEvent({
passAlong: "Some dummy data to pass along"
});
}
});
this.setAggregation("_myButton", oMyButton);
},
// etc...
});
希望这能解释一下。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)