首页 > 解决方案 > SAPUI5 自定义控件在运行时不呈现更新的数据

问题描述

我创建了一个自定义控件,其中有 5 个属性并基于它们呈现图形,如下所示:

renderer : function(manager, myControl) {
    manager.write("<div>");
    manager.write("Some html stuff");
    manager.write("</div>");
}

在这里一切正常,并使用我预先选择的模型数据渲染图形。当我尝试在运行时更改一些属性时,问题就来了。在该方法rerender中,当某些属性发生更改但未应用渲染时会触发代码。方法本身是相同的,只是实例化了管理器。

rerender : function() {
    console.log("trigger");
    var manager = new sap.ui.core.RenderManager();
    manager.write("<div>");
    manager.write("Some html stuff");
    manager.write("</div>");
}

我还尝试创建一个全局对象manager并使managers上面的两者成为同一事物。结果是一样的……

标签: sapui5

解决方案


您必须添加oRm.writeControlData(oControl);renderer

在你的情况下

renderer : function(manager, myControl) {
    manager.write("<div");
    manager.writeControlData(myControl);
    manager.write(">");
    manager.write("Some html stuff");
    manager.write("</div>");
}

浏览API 参考:sap/ui/core/RenderManager


推荐阅读