SAP UI5 核心的动态 ID:HTML appexcharts div + 同步问题

SAP UI5 Dynamic id for core:HTML appexcharts div + synchronization issue

提问人:user3504563 提问时间:11/4/2023 更新时间:11/4/2023 访问量:27

问:

我有一个包含 appexcharts 的 ui5 应用程序,到目前为止我遇到了两个问题,

第一个是在某些情况下,我有动态图表的数量,应该根据oData记录数添加,所以我尝试了这个

视图:

<List id="donutList" items="{myList>/}">
  <CustomListItem>
     <HBox>
        <core:HTML></core:HTML>
     </HBox>
  <CustomListItem>
</List>

控制器:

var listItems = this.getView().byId("donutList").getItems();
var oModel = this.getView().getModel("myList");
for(var i =0; i < listItems.length; i++) {
    var sPath = listItems[i].getBindingContextPath();
    var item = oModel.getProperty(sPath);
    listItems[i].getContent()[0].getItems()[0].setContent("<div id='donutChart" + item.id + "'></div>");
}

当我使用 setContent 方法时,它确实设置了内容,但是当我尝试 onAfterRendering 时,它总是给我一个错误,说它是 null,例如这一行返回 null

console.log(document.querySelector("#donutChart" + item.id ));

那么,有没有办法在xml中写入动态id?是否有将动态 ID 添加到此行的语法?我搜索了 allot,但没有找到有效的结果

<core:HTML content=“&lt;div id=&quot; ID-HERE &quot; &gt;&lt;/div&gt;”></core:HTML>

我的第二个问题是我有 appexcharts 的同步问题,10 次中有 9 次 afterRendering 函数是在从后端检索到 oData 之前执行的,尽管我在 oData 读取的成功部分中添加了 afterRendering 函数。

that.getView().addEventDelegate({
    onAfterRendering: that.onRenderingAppex()
}, that);

我尝试了异步 await,但它产生的问题多于解决的问题。有没有另一种方法可以确保 oData 出现在执行的 afterRendering 之前?

很抱歉有这么多问题,但我已经尝试解决这个问题两周了,但没有成功。 并提前感谢您。

JavaScript XML SAPUI5

评论


答: 暂无答案