Sapui5 如果条件允许,请更改图标颜色

Sapui5 如果条件允许,请更改图标颜色,sapui5,Sapui5,我正在使用一个列表来打印模型中的数据,其中一个应该有一个图标。问题是图标根据值的不同而变化,我也应该改变它的颜色 我认为: <ObjectListItem title="State" type="Active" number="{/Data/8/state}" icon="{= ${/Data/8/state}.toUpperCase() === 'OK' ? 'sap-icon://accept' : 'sap-icon://decline' }"></ObjectList

我正在使用一个列表来打印模型中的数据,其中一个应该有一个图标。问题是图标根据值的不同而变化,我也应该改变它的颜色

我认为:

<ObjectListItem title="State" type="Active" number="{/Data/8/state}"
icon="{= ${/Data/8/state}.toUpperCase() === 'OK' ? 'sap-icon://accept' : 
'sap-icon://decline' }"></ObjectListItem>

像addStyleClass这样的选项似乎不起作用。我通过在SAP添加到图标的id中添加css来更改颜色,但由于它必须根据值进行更改,我不知道如何实现它。
另一个选项是直接向这两个图标添加颜色,但我无法添加类。

您可以使用
CustomData
,然后创建一个css选择器来匹配它:

<ObjectListItem title="State" type="Active" number="{/Data/8/state}"
icon="{= ${/Data/8/state}.toUpperCase() === 'OK' ? 'sap-icon://accept' : 
'sap-icon://decline' }">
<customData>
  <core:CustomData writeToDom="true" key="class" value="{= ${/Data/8/state}.toUpperCase()}" />
</customData>
</ObjectListItem>

嗨,我喜欢你的方法,但它不起作用。它给了我一个错误:带有key类的CustomData应该写入元素sap.m.ObjectListItem#_item15的HTML,但该值不是字符串。-并且没有添加任何数据类。我已经尝试直接写入值:key=“class”value=“OK”,错误消失了,但没有添加任何类added@lorenag83html输出是什么样的?
数据类
属性应添加到
  • 标记中。您可以尝试在chrome dev工具(或浏览器中的等效工具)上运行
    $(“[data class='OK']”)
    ,查看它是否返回一些内容。它似乎正在将其添加到列表(
  • 标记)中,然后该类被覆盖。我有内部
  • class=sapMLIBContent、sapmobjltorw、sapMOBjLIconDiv和finally.sapMObjLIcon,它们似乎覆盖了颜色下面的示例,我终于将SapClass添加到样式[data coloricon=“No”]。sapMObjLIcon成功了!
    [data-class='OK'] {
      color: blue !important; 
    }
    [data-class='NOT-OK']{
      color: red !important;
    }