当前位置: 首页 > Web前端 > HTML

关于SAPUI5所有控件的共同祖先-sap.ui.base.ManagedObject

时间:2023-03-29 12:47:47 HTML

ManagedObject的新子类是通过调用ManagedObject.extend创建的,可以使用本文描述的以下托管功能。托管属性表示ManagedObject的状态。它们可以存储简单数据类型的单个值,例如“字符串”或“整数”。它们有一个名称(例如大小)和获取当前值(getSize)或设置新值(setSize)的方法。这些getter方法如下图所示:这些setter方法如下图所示:当通过调用setter修改属性时,ManagedObject被标记为无效。可以使用bindProperty方法将托管属性绑定到sap.ui.model.Model中的属性。对模型属性的更新将自动反映在托管属性中,如果TwoWay数据绑定模式打开,对托管属性的更改将反映在模型中。可以通过调用unbindProperty删除现有绑定。如果克隆了ManagedObject,则克隆的托管属性将与克隆的源具有相同的值,前提是该属性未绑定。如果绑定,克隆中的属性将绑定到与源中相同的模型属性。有关托管属性的声明、描述它的元数据以及自动生成以访问它的方法集的详细信息,可以在扩展方法的文档中找到。聚合托管聚合可以存储对其他托管对象的一个??或多个引用。它们是一种控制聚合对象生命周期的方法:一个ManagedObject可以在任何时候由至多一个父ManagedObject聚合。当ManagedObject被销毁时,所有聚合对象也被销毁,对象本身从其父对象中移除。也就是说,聚合将不包含已销毁的对象或null/undefined。聚合具有名称(例如标题或项目)、基数(0..1或0..n)并且属于特定类型(也必须是ManagedObject的子类或UI5接口)。ManagedObject将提供方法来设置或获取基数为0..1的特定聚合的聚合对象(例如,setHeader、getHeader用于聚合命名的标头)。对于基数为0..n的聚合,有一些方法可以获取所有聚合对象(getItems)、在聚合中定位对象(例如indexOfItem)、添加、插入或删除单个聚合对象(addItem、insertItem、removeItem)或删除从聚合中删除或销毁(removeAllItems,destroyItems)中的所有对象的聚合对象。聚合的一些示例:基数为0..n的聚合可以使用bindAggregation绑定到模型中的集合(并使用unbindAggregation再次解除绑定)。对于模型集合中的每个上下文,都会在托管聚合中创建一个相应的对象,方法是通过克隆模板对象或调用工厂函数。聚合还控制绑定对象的数据绑定上下文:默认情况下,聚合对象从其父对象继承所有模型和绑定上下文。克隆ManagedObject时,所有聚合对象也将被克隆-但前提是它们尚未通过数据绑定添加。在这种情况下,克隆中的聚合将绑定到相同的模型集合。