SAPUI5 / OPENUI5 javascript视图HTML元素渲染
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SAPUI5 / OPENUI5 javascript视图HTML元素渲染相关的知识,希望对你有一定的参考价值。
我是SAPUI5 / OPENUI5的新用户我创建了一个javascript视图,它基本上导入了几个图形和图表库,就像一个实用程序,它创建了多个图表,图形和带有图标的表
下面是相同的代码,下面是Js(创建图表的sap ui JS视图)
jQuery.sap.require("some.graph.lib");
jQuery.sap.require("some.util.lib");
jQuery.sap.require("some.other.imports");
(function(){
sas.hc.ui.core.mvc.JSView.extend(" reports.dashboard.BaseDashboard.prototype.addCrossTab", {
metadata : {
properties : {
chartRequired:false,
tableDataRequired:false
},
},
rb: sap.ui.getCore().getLibraryResourceBundle("sas.csb.common"),
reports.dashboard.BaseDashboard.prototype.createGraphics = function (data) {
//This Function creates barchart, line charts and cross tab tables
return this.mainContentPane;
};
//Some other code to create and render graph
})();
我正在创建另一个视图,我在其中导入上面的视图并进行ajax调用,以便我可以创建图形和表格,并将其作为base64编码的字符串发送到REST API,以便在服务器端保存为PDF。
jQuery.sap.require("sas.cscommon.util.JSONUtil");
jQuery.sap.require({modName: "reports.dashboard.MeasureDashboard", type: "view"});
(function(){
var rb = sap.ui.getCore().getLibraryResourceBundle("sas.csb.backtesting");
//some other method
sas.csb.backtesting.ModelList.prototype.downloadModelReport = function(event) {
var id = "sample";
var oView = new reports.dashboard.MeasureDashboard(id, {
viewName: "reports.dashboard.MeasureDashboard",
chartrequired: true
} );
//Calling REST API to get data
oView.createGraphics(data);
}
如何转换此javascript sapui5 oView对象而不将其显示给用户进入html元素,以便我可以将画布和其他图形转换为基本的64位编码字符串并将其传递给REST API以保存在服务器端?
我想从视图对象访问canvas html元素而不在屏幕上呈现视图。
我知道在sapui5中有一个渲染器附有sapui5控件和RenderManager,但它没有帮助。
答案
遗憾的是,不推荐直接获取HTML的方法。但是你可以创建一个不在DOM中的临时元素。
var div = document.createElement("div");
var rm = sap.ui.getCore().createRenderManager();
rm.render(oView, div);
rm.destroy();
var sHTML = div.innerHTML;
以上是关于SAPUI5 / OPENUI5 javascript视图HTML元素渲染的主要内容,如果未能解决你的问题,请参考以下文章