如果实体集为空,如何隐藏控件

How to hide control if entity set is empty

我通过 OData 服务从后端获取 IDNumber(一个 EntitySet)。 在前端,显示所有 ID,但如果 IDNumber 集为空,我想隐藏 ComboBox (visible="false")。 我不知道如何处理这个。

<ComboBox id="cbIDNumber"
  items="{/IDNumber}"
  visible="{
    path: '{/IDNumber}',
    formatter: '.formatter.formatVisible'
  }"
/>

formatter.js中,传递的参数是null。 我怎样才能得到一些我可以使用的输入?

如果加载您的 IDNumber 列表,将触发一个事件 dataReceived

<ComboBox id="cbIDNumber" 
    items="{
        path: '/IDNumber',
        events: {
            dataReceived: '.onDataReceived'
        }
    }" />

然后您可以在您的控制器中实现一个事件处理程序:

onDataReceived: function(oEvent) {
    const oData = oEvent.getParameter("data");
    const aResults = oData.results;
    const bIsVisible = aResults.length > 0;

    const oCB = this.byId("cbIDNumber");
    oCB.setVisible(bIsVisible);
}