Mryqu's Notes


  • 首页

  • 搜索
close

[OpenUI5] 通过sap.ui.core.Core的registerElement和deregisterElement函数监控View和控件的构造和析构

时间: 2015-06-13   |   分类: FrontEnd     |   阅读: 123 字 ~1分钟

在sap.ui.core.Core中有registerElement和deregisterElement函数,它们可用于在调试中监控Element(包括View和控件)的构造和析构。

  • registerElement:在控件构造时被调用[OpenUI5] 通过sap.ui.core.Core的registerElement和deregisterElement函数监控View和控件的构造和析构
  • deregisterElement:在控件析构时被调用[OpenUI5] 通过sap.ui.core.Core的registerElement和deregisterElement函数监控View和控件的构造和析构

通过下面的代码可知,Core类的mElements存储着元素Id和元素的散列表:

Core.prototype.registerElement = function(oElement) {

  var sId = oElement.getId(),
    oldElement = this.mElements[sId];

  if ( oldElement && oldElement !== oElement ) {
    if ( oldElement._sapui_candidateForDestroy ) {
      jQuery.sap.log.debug("destroying dangling template " + 
                           oldElement + 
                           " when creating new object with same ID");
      oldElement.destroy();
    } else {
      // duplicate ID detected => fail or at least log a warning
      if (this.oConfiguration.getNoDuplicateIds()) {
        jQuery.sap.log.error("adding element with duplicate id '" + sId + "'");
        throw new Error("Error: adding element with duplicate id '" + sId + "'");
      } else {
        jQuery.sap.log.warning("adding element with duplicate id '" + sId + "'");
      }
    }
  }

  this.mElements[sId] = oElement;

};

Core.prototype.deregisterElement = function(oElement) {
  delete this.mElements[oElement.getId()];
};

可以通过过如下方法获得所有已注册元素的Id。

var keys = $.map(this.mElements, function(v, i){
  return i;
});

标题:[OpenUI5] 通过sap.ui.core.Core的registerElement和deregisterElement函数监控View和控件的构造和析构
作者:mryqu
声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!

#openui5# #core# #registerelement# #deregisterelement# #control#
[OpenUI5] sap.ui.core.ResizeHandler
使用Vagrant创建开发环境
  • 文章目录
  • 站点概览

Programmer & Architect

662 日志
27 分类
1472 标签
GitHub Twitter FB Page
© 2009 - 2023 Mryqu's Notes
Powered by - Hugo v0.120.4
Theme by - NexT
0%