SAPUI5 自定义伪事件

标签 sapui5

在 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...
});

希望这能解释一下。

关于SAPUI5 自定义伪事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22505486/

相关文章:

javascript - 如何将变量从详细信息传递到母版页SAPUI5

javascript - 从 SAPUI5 中的 Controller 动态绑定(bind)表

javascript - 将 JSON 文件中的数据放入本地存储

javascript - 如何使应用程序中的日期字段独立于系统时区?

sapui5 - 如何将 XML 片段添加到 XML View ?

javascript - 如何在 SAPUI5 的 Xml View 中编写无限行重复器

javascript - Controller 中的表达式绑定(bind)

xml - 如何在 sapUI XML View 中迭代 JSONModel?

sapui5 - 如何检索智能模板列表报表页面中选中的行

sapui5 - SAP UI5 中的聚合