关于前端:SAP-UI5-ManagedObject-的-Association-讲解

30次阅读

共计 862 个字符,预计需要花费 3 分钟才能阅读完成。

托管关联也造成 SAP UI5 对象之间的关系,但它们不定义关联对象的生命周期。换句话说,通过 association 关系关联在一起的两个 SAP UI5 对象,是松耦合的关系,其生命周期彼此独立。它们甚至能够在另一个关联对象曾经被销毁的前提下依然独立存在。这是 association 和 Aggregation 实质上的区别。

出于同样的起因,关联的外部存储不是间接的对象援用,而只是关联指标对象的 ID。

关联具备名称(例如 initialFocus)、基数(“0..1”或“0..n”)并且属于特定类型(也必须是 ManagedObject 的子类或 UI5 接口).

ManagedObject 将提供办法来设置或获取基数为 0..1 的特定关联的关联对象(例如 setInitialFocus、getInitialFocus)。对于基数为 0..n 的关联,有一些办法能够获取所有关联对象(getRefItems),增加、插入或删除单个关联对象(addRefItem、insertRefItem、removeRefItem)或从关联中删除所有对象(removeAllRefItems).

无关托管关联的申明、形容它的元数据以及主动生成以拜访它的办法集的详细信息,能够在扩大办法的文档中找到。

关联不能绑定到模型。

克隆 ManagedObject 时,关联的后果取决于关联的指标对象与克隆操作的根之间的关系。如果关联对象是待克隆对象树的一部分(可通过来自克隆操作的根的聚合拜访),则克隆关联将援用关联对象的克隆。否则,关联将援用与原始树中雷同的对象。当 ManagedObject 被销毁时,仅关联的其余对象不受销毁操作的影响。

咱们在 Chrome 开发者工具 console 面板里进行一些练习。

应用下列代码拿到 page control 实例的援用:

var page = sap.ui.getCore().byId("__page0");

其中 __page0 id 从 Chrome 开发者工具 UI5 面板里获取。

而后应用 page.getAssociation 即可获取指定名称的 association 数据:

正文完
 0