本文介绍了TooltipBaseRenderer.js:404-未找到的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用MouseOver事件处理功能扩展了Sap.ui.core.TooltipBase,该事件处理附加到ChartContainer:

中的一些Sap.ui.core.Icon
 sap.ui.define(function () {
    "use strict";
    return sap.ui.core.TooltipBase.extend("dvd.rl.component.ChartContainer.parts.TooltipBase.TooltipBase", {
            metadata: {
                events: {
                    "onmouseover" : {}
                }
            },
            oView: null,

            setView : function(view){
                this.oView = view;
            },

//          the hover event handler, it is called when the Button is hovered - no event registration required
            onmouseover : function() {},
});

EveryThink工作正常,但当我单击ChartContainer中的图标时,从TooltipBaseRenderer.js收到此错误(此错误发生在处理新闻事件之前。):

在TooltipBaseRenderer.js中,该行为:

我不知道那里发生了什么事。如果你愿意的话,我很乐意听。

我是这样将TooltipBase添加到sap.ui.core.Icon:

//          Add custom Icon for filter
            var oFilterIcon = new  sap.ui.core.Icon("filterButton", {
                tooltip     : "{i18n>filter}",
                src         : "sap-icon://filter",
                press       : [this.onHandleLocalFilterOpen,this]
            });
//          Add Icon to chart component
            oChartContainer.addCustomIcon(oFilterIcon);

            var oTooltipBase = new TooltipBase();
//          set new TooltipBase to Icon
            oFilterIcon.setTooltip(oTooltipBase);

编辑的12:15 100117:

当我在TooltipBase.Extension中使用渲染器时:

//just inherit the renderer as it is
renderer: {},

我收到此错误:

所以我删除了渲染器,当我将鼠标悬停在图标上时,TooltipBase就可以工作了。问题是当我按照前面描述的那样单击图标时。

推荐答案

这里是一个正常工作的sample custom tooltip extended from sap/ui/core/TooltipBase

确保您的渲染器具有render方法。否则,UI5将在父级中查找它。此外,TooltipBase已经处理了鼠标事件。不需要在您的分机中处理它们。


事情是这样的:

  1. 您的呈现器没有render函数(renderer: { })。
  2. UI5在父渲染器(sap/ui/core/TooltipBaseRenderer)中查找render
  3. 没有TooltipBaseRenderer.js,因为TooltipBase是抽象控件。抽象控件没有渲染器(其定义中的renderer: null // not undefined)。
通常,UI5会绕过获取抽象控件的呈现器,但不幸的是TooltipBase缺少renderer: null。因此,UI5假设一定有一个名为TooltipBaseRenderer.js的文件导致了404错误。As of UI5 1.82, the TooltipBase has renderer: null,因此该问题不再可重现。

这篇关于TooltipBaseRenderer.js:404-未找到的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-12 04:13