首页 > 其他分享 >关于 SAP UI5 所有控件的共同祖先 - sap.ui.base.ManagedObject

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

时间:2022-10-05 11:06:44浏览次数:53  
标签:控件 聚合 属性 对象 绑定 base sap 克隆 ManagedObject

ManagedObject 的新子类是通过调用 ManagedObject.extend 创建的,并且可以使用本文介绍的以下托管功能。

托管属性表示 ManagedObject 的状态。它们可以存储简单数据类型(如“字符串”或“整数”)的单个值。它们具有名称(例如 ​​size​​)和获取当前值(getSize)或设置新值(setSize)的方法。

这些 getter 方法如下图所示:

关于 SAP UI5 所有控件的共同祖先 - sap.ui.base.ManagedObject_子类

这些 setter 方法如下图所示:

关于 SAP UI5 所有控件的共同祖先 - sap.ui.base.ManagedObject_子类_02

当通过调用 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)。

聚合的一些例子:

关于 SAP UI5 所有控件的共同祖先 - sap.ui.base.ManagedObject_数据绑定_03

基数为 0..n 的聚合可以使用 ​​bindAggregation​​​ 绑定到模型中的集合(并使用 ​​unbindAggregation​​ 再次解除绑定)。对于模型集合中的每个上下文,将在托管聚合中创建相应的对象,方法是克隆模板对象或调用工厂函数。

聚合还控制绑定对象的数据绑定上下文:默认情况下,聚合对象从其父对象继承所有模型和绑定上下文。

克隆 ManagedObject 时,所有聚合对象也将被克隆 - 但前提是它们尚未通过数据绑定添加。在这种情况下,克隆中的聚合将绑定到同一个模型集合。

标签:控件,聚合,属性,对象,绑定,base,sap,克隆,ManagedObject
From: https://blog.51cto.com/jerrywangsap/5732371

相关文章

  • 想比较全面地学习 SAP XXX,能指导下从哪儿开始学习吗?
    其实曾经有不少朋友给我留言,询问本文标题描述的问题。XXX可以替换成任意一个SAP产品或者技术,比如:想比较全面地学习SAPABAP,能指导下从哪儿开始学习吗?想比较系统地学习S......
  • [RxJS] Defer task execution with the asapScheduler (microtask)
    asapSchedulerissimilarto queueMicroTask()and Promise. AsapSchedulerletsyouscheduleworkonthemicrotaskqueue,executingtaskassoonaspossible,o......
  • HBase的优化
    一、HBase索引案例(使用redis存储索引)在这里是简单模拟将索引存到redis中,再通过先查询索引再将Hbase中的数据查询出来。需要考虑的问题:1、建立redis的连接,建立Hba......
  • HBase中rowkey的设计
    HBase中rowkey的设计(重点!!面试题)HBase的RowKey设计HBase是三维有序存储的,通过rowkey(行键),columnkey(columnfamily和qualifier)和TimeStamp(时间戳)这个三个维度可以对HBase中......
  • 0635-5.16.1-Hue集成HBase出现Api Error异常分析
    温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。Fayson的github:​​https://github.com/fayson/cdhproject​​提示:代码块部分可......
  • 0869-7.1.7-如何在CDP中使用Hive Bulkload批量导入数据到HBase
    1.文档编写目的在遇到将Hive中的数据同步到HBase时,一般都是通过在Hive中创建映射HBase的表,然后通过insert的方式来实现,在数据量小的时候,往往还能接受,但是如果是大批量数据,除......
  • SAP UI5 OData 请求的自定义 HTTP header 设置方法
    代码如下:oModel.setHeaders({"myHeader1":"value1","myHeader2":"value2"});我们可以先通过如下代码,拿到一个ODataServiceurl对应的ODataModel实例://"ODa......
  • 如何使用 SAP UI5 V2 ODataModel 创建数据
    在ODataV2模型中创建新实体存在三种不同的方法。最适合的方法取决于应用程序用例。对于所有方法,对应的API都采用一个groupId指定一个批处理组,以控制何时将创建实......
  • 关于 SAP UI5 ODataModel.createEntry 返回的 context 对象
    在返回的上下文中使用创建的API返回的Promise对象,以便在持久化或重置时获得通知。使用isTransientAPI,您可以确定创建的上下文是transient的还是持久的;请注意,对于尚......
  • 如何打通 SAP Cloud for Customer 系统和微信公众号的双向消息通信功能
    本系列的前三篇文章,我们依次介绍了微信公众号开发环境的搭建,微信公众平台API的调用,以及地图功能的集成。本文作为该系列第四篇文章,介绍如何实现SAPCloudforCustomer......