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元素渲染的主要内容,如果未能解决你的问题,请参考以下文章

SAPUI5使用了哪些开源技术

sap.m.Table 和 sap. ui.table.Table 两个控件的功能对比

服务器端用户输入验证

UI5-文档-2.1-使用OpenUI5开发应用

UI5-学习篇-1-开发工具及环境搭建

页面内的 OpenUI5 NavContainer