sap.m.List项目在运行时删除属性。

问题描述 投票:0回答:1

根据条件,我想删除其中一个元素(在图片中高亮显示)enter image description here 从自定义列表。下面是我做的代码。如果我把null传给formatter,作为头像图标,默认情况下,它显示一个图标,图标不应该显示为空值。

<VBox>
            <List id="sonarRepId" items="{ path: 'sonarMetrics>/measures' }" updateFinished="onUpdateListFinished">
                <items>
                    <CustomListItem id="idSonarList">
                        <FlexBox id="idFlex" alignItems="Start" justifyContent="SpaceBetween" class="sapUiSmallMarginBeginEnd" height="88px">
                            <items>
                                <VBox class="sapUiSmallMarginTop">
                                    <Link text="{sonarMetrics>value}" press="handlePress" class="sonarsapMLnk"/>
                                    <HBox class="sapUiSmallMarginTopBottom">
                                        <core:Icon size="2rem" class="sonarsapMObjLIcon" src="{sonarMetrics>imageL}"/>
                                        <Label text="{sonarMetrics>name}" class="sapUiTinyMarginBegin"/>
                                    </HBox>
                                    <layoutData>
                                        <FlexItemData growFactor="2"/>
                                    </layoutData>
                                </VBox>
                                <HBox id="idHbox" class="sapUiSmallMarginTop">
                                    <items>
                                        <HBox class="sapUiSmallMarginTop">
                                            <Link id="idLinkState" text="{sonarMetrics>state}" press="stateHandlePress" class="sapUiTinyMarginEnd"/>
                                            <Avatar id="idAvatar" initials="{parts : [ 'sonarMetrics>state_value'], formatter: '.formatter.formatNumeric'}" displaySize="XS"
                                                backgroundColor="{parts : [ 'sonarMetrics>state_value'], formatter: '.formatter.formatIconColor'}"/>
                                        </HBox>
                                    </items>
                                </HBox>
                            </items>
                        </FlexBox>
                    </CustomListItem>
                </items>
            </List>
        </VBox>

`控制器

onUpdateListFinished: function (oEvent) {
            // var sonarList = this.getView().byId("sonarRepId");
            // var items = sonarList.getItems();
            // for (var i = 0; i < items.length; i++) {
            //  var oAvatarIcon = oEvent.getSource().getItems()[i].mAggregations.content[0].mAggregations.items[1].mAggregations.items[0].mAggregations.items[1];
            //  if(oAvatarIcon){
            //  var delItemColor = oAvatarIcon.getProperty("backgroundColor");
            //  if (delItemColor === "Accent10") {
            //      oAvatarIcon.destroy();
            //  }
            // }
            // }

        }
sapui5
1个回答
1
投票

隐藏头像控件,而不是销毁它。你可以使用 表达式结合 为此。

表达式绑定。

visible="{= ${sonarMetrics>state_value} !== null}" 

阿凡达控件。

<Avatar id="idAvatar" visible="{= ${sonarMetrics>state_value} !== null}" 
initials="{parts : [ 'sonarMetrics>state_value'], formatter: '.formatter.formatNumeric'}" 
displaySize="XS" backgroundColor="{parts : [ 'sonarMetrics>state_value'], formatter: '.formatter.formatIconColor'}"/>
© www.soinside.com 2019 - 2024. All rights reserved.