根据条件,我想删除其中一个元素(在图片中高亮显示) 从自定义列表。下面是我做的代码。如果我把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();
// }
// }
// }
}
隐藏头像控件,而不是销毁它。你可以使用 表达式结合 为此。
表达式绑定。
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'}"/>