提问人:user3504563 提问时间:11/4/2023 更新时间:11/4/2023 访问量:27
SAP UI5 核心的动态 ID:HTML appexcharts div + 同步问题
SAP UI5 Dynamic id for core:HTML appexcharts div + synchronization issue
问:
我有一个包含 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=“<div id=" ID-HERE " ></div>”></core:HTML>
我的第二个问题是我有 appexcharts 的同步问题,10 次中有 9 次 afterRendering 函数是在从后端检索到 oData 之前执行的,尽管我在 oData 读取的成功部分中添加了 afterRendering 函数。
that.getView().addEventDelegate({
onAfterRendering: that.onRenderingAppex()
}, that);
我尝试了异步 await,但它产生的问题多于解决的问题。有没有另一种方法可以确保 oData 出现在执行的 afterRendering 之前?
很抱歉有这么多问题,但我已经尝试解决这个问题两周了,但没有成功。 并提前感谢您。
答: 暂无答案
评论