写点什么

SAP UI5 ManagedObject 的 Association 讲解

作者:Jerry Wang
  • 2022 年 9 月 05 日
    上海
  • 本文字数:718 字

    阅读完需:约 2 分钟

SAP UI5 ManagedObject 的 Association 讲解

托管关联也形成 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 数据:



发布于: 刚刚阅读数: 4
用户头像

Jerry Wang

关注

🏆InfoQ写作平台-签约作者🏆 2017.12.03 加入

SAP成都研究院开发专家,SAP社区导师,SAP中国技术大使。2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。工作中使用 ABAP, Java, JavaScript 和 TypeScript 进行开发。

评论

发布
暂无评论
SAP UI5 ManagedObject 的 Association 讲解_JavaScript_Jerry Wang_InfoQ写作社区