共计 1223 个字符,预计需要花费 4 分钟才能阅读完成。
ManagedObject 的新子类是通过调用 ManagedObject.extend 创立的,并且能够应用本文介绍的以下托管性能。
托管属性示意 ManagedObject 的状态。它们能够存储简略数据类型(如“字符串”或“整数”)的单个值。它们具备名称(例如 size
)和获取以后值(getSize)或设置新值(setSize)的办法。
这些 getter 办法如下图所示:
这些 setter 办法如下图所示:
当通过调用 setter 批改属性时,ManagedObject 被标记为 有效
。能够应用 bindProperty
办法将托管属性绑定到 sap.ui.model.Model 中的属性。对模型属性的更新将主动反映在托管属性中,并且如果 TwoWay 数据绑定模式处于开启状态,则对托管属性的更改将反映在模型中。
能够通过调用 unbindProperty
删除现有绑定。
如果克隆了 ManagedObject,则克隆的托管属性将具备与克隆源雷同的值,前提是该属性未绑定。如果已绑定,则克隆中的属性将绑定到与源中雷同的模型属性。
无关托管属性的申明、形容它的元数据以及主动生成以拜访它的办法集的详细信息,能够在扩大办法的文档中找到。
Aggregation
托管聚合能够存储一个或多个对其余 ManagedObjects 的援用。它们是管制聚合对象生命周期的一种伎俩:一个 ManagedObject 能够随时由最多一个父 ManagedObject 聚合。当 ManagedObject 被销毁时,所有聚合对象也会被销毁,并且对象自身也会从其父对象中移除。也就是说,聚合不会蕴含被毁坏的对象或 null/undefined。
聚合具备名称(例如 title
或 item
)、基数(0..1
或 0..n
)并且属于特定类型(也必须是 ManagedObject 的子类或 UI5 界面)。ManagedObject 将提供办法来设置或获取基数为 0..1 的特定聚合的聚合对象(例如,setHeader、getHeader 用于名为 header
的聚合)。对于基数为 0..n 的聚合,有一些办法能够获取所有聚合对象 (getItems),在聚合中定位对象(例如 indexOfItem),增加、插入或删除单个聚合对象(addItem、insertItem、removeItem ) 或从聚合中删除或销毁所有对象(removeAllItems、destroyItems)。
聚合的一些例子:
基数为 0..n 的聚合能够应用 bindAggregation
绑定到模型中的汇合(并应用 unbindAggregation
再次解除绑定)。对于模型汇合中的每个上下文,将在托管聚合中创立相应的对象,办法是克隆模板对象或调用工厂函数。
聚合还管制绑定对象的数据绑定上下文:默认状况下,聚合对象从其父对象继承所有模型和绑定上下文。
克隆 ManagedObject 时,所有聚合对象也将被克隆 – 但前提是它们尚未通过数据绑定增加。在这种状况下,克隆中的聚合将绑定到同一个模型汇合。