widget - SAPUI5 Web 内容小部件
问题描述
所以我正在尝试开发一个所谓的“Web 内容小部件”以在 SAP Cloud Portal 中使用,如下所述:https ://help.sap.com/viewer/3ca6847da92847d79b27753d690ac5d5/Cloud/en-US/b3b13c6b75244a18887180353ce49599.html
我正在尝试创建的是一个旁边带有图标的标题。单击该图标应该会打开一个带有一些文本的弹出窗口。标题和弹出框文本应该可以从 Cloud Portal 进行配置。
现在我有一个可配置的标题和可配置的文本,但我如何实现一种机制来打开和关闭该框架中的弹出框?
有没有办法在“Web 内容小部件”中使用事件处理程序?或者也许:有没有办法使用 sap.m.popover?(即在门户小部件中转换 SAPUI5 应用程序并添加选项?但是如何?)
编辑:
文件夹结构如下所示:
- 自定义内容小部件
- 内容单元
- popover.json(包含可以在门户中编辑的“设置/配置”)
- 渲染器
- popoverRenderer.js
- 片段
- popover.html
- 组件.js
- 清单.json
- 内容单元
- cp.app.descriptor.json
“popoverRenderer.js”和“popover.html”片段:
sap.ui.define([
"sap/ushell/cpv2/services/control/contentUnit/WebContentRenderer"
], function(WebContentRenderer) {
"use strict";
return WebContentRenderer.extend("infoblockpopover.renderers.popoverRenderer", {
getDefaultSettings: function() {
var defaultSettings = {
height: "10rem"
};
return defaultSettings;
},
onInit: function() {
},
onThemeChanged: function() {
},
createSettingsEditor: function(propertyEditorManager) {
var propertyEditor = propertyEditorManager.editor;
this.addPropertyEditor({
key: "height",
category: propertyEditorManager.bundle.getText("WIDGET_CATEGORY_DIMENSIONS"),
title: propertyEditorManager.bundle.getText("WIDGET_SETTINGS_LABEL_HEIGHT"),
editor: propertyEditor.Size,
flags: propertyEditor.Size.AUTO | propertyEditor.Size.UNIT_PX | propertyEditor.Size.UNIT_PT | propertyEditor.Size.UNIT_REM
});
},
renderer: {
render: function(oRm, oControl) {
var settings = oControl.getSettings();
oRm.write("<div");
oRm.writeClasses();
oRm.writeControlData(oControl);
oRm.write(">");
oRm.write("<div>");
var uiComps = oControl.getItems();
jQuery.each(uiComps, function() {
oRm.write("<div style='position: relative;height:" + settings.height + "'>");
oRm.renderControl(this);
oRm.write("<div style='clear: both'></div>");
oRm.write("</div>");
});
oRm.write("</div>");
oRm.write("</div>");
}
}
});
}, true);
<component>
<style>
/* Some style here */
</style>
<div class="{$dir} {$device}">
<div class="zBILink ['{popoverText}'?'':'zBILinkHide']" >
<span class="icon-wl-icon-question onclick-menu" tabindex="0">
<div class="onclick-menu-content">{popoverText}</div>
</span>
</div>
</div>
</component>
解决方案
推荐阅读
- javascript - GREP 未检测到数组中添加的元素
- java - 从 Listener 修改 UI
- autohotkey - 我的 AutoHotKey 脚本运行时无法键入空格?
- python - ValueError:尝试在具有祖父目录的顶级包之外进行相对导入(再次出现相对导入问题)
- android - Kotlin:由具有具体类型参数的函数覆盖
- docker - 如何简单地扩展 docker-compose 服务并将索引和计数传递给每个服务?
- python - 为什么 %pylab 没有启动 pylab 模式?
- here-api - 我不断收到“未找到请求的资源”
- r - ggplot随机截距垂直而不是水平
- python - self.variable.function() 在python中的含义或通过类self变量访问方法