likes
comments
collection
share

SAP UI5 ManagedObject 的 Event 讲解

作者站长头像
站长
· 阅读数 48

托管事件提供了一种将重要状态更改传达给任意数量的 感兴趣的 侦听器的方法。 事件有一个名称和(可选)一组参数。 对于每个事件,都会有添加或删除事件侦听器的方法以及触发事件的方法。

例如,名为“change”的事件的 attachChange、detachChange、fireChange.

如下图所示:

SAP UI5 ManagedObject 的 Event 讲解

有关托管事件的声明、描述事件的元数据以及自动生成的用于访问它的方法集的详细信息,可以在扩展方法的文档中找到。

克隆 ManagedObject 时,为克隆源中的任何事件注册的所有侦听器也将注册到克隆。 以后的更改不会反映在任何方向(从源到克隆,反之亦然)。

ManagedObject 的原型提供了几个通用的低级 API 来管理属性、聚合、关联和事件。 这些泛型方法仅用于实现管理单个托管属性等的更高级别的非泛型方法(例如,为属性“大小”设置新值的函数 setSize(value))。 sap.ui.base.ManagedObject.extend 为所有托管方面创建那些更高级别 API 的默认实现。 然后子类的实现可以用更具体的实现覆盖那些默认实现,例如 在设置或检索特定属性时实现副作用。 因此,重要的是要了解通用的低级方法不适合对托管对象的状态进行通用访问,因为这会绕过覆盖的高级方法及其副作用。

SAP UI5 控件 Events 的一个例子:

SAP UI5 ManagedObject 的 Event 讲解

托管对象一些常用的 event

  • formatError:当应该从模型传播绑定属性的新值,但格式化该值失败并出现异常时触发。此事件使控制层次结构冒泡。
  • modelContextChange:在此对象上更改模型或上下文时触发,例如通过调用 setModel/setBindingContext 或通过传播(propagation)触发。