我是openUi5的新手,他正在尝试开发一个简单的hello world应用。我的应用程序视图之一(InvioceList.view.xml)具有以下代码:
控件numberState
的属性ObjectListItem
允许我根据费率更改发票金额的颜色。
但是,有效的代码仅规定两种颜色,但是我想使用三种颜色(Success
表示绿色,Warning
表示黄色,Error
表示红色),所以为了做到这一点,我尝试了与此:
代码:
<ObjectListItem
numberState="{= ${invoice>ExtendedPrice} > 20 ? 'Success' : ${invoice>ExtendedPrice} > 50 ? 'Error' : 'Warning' }"
/>
因此,由于我是这方面的初学者,因此我现在只能识别我正在使用的条件语句是三元运算符或多个条件语句,但是由于某些原因,当使用两个以上条件语句时,它不能正常工作间隔(可能是语法)。
因此,我想了解我在做什么错,或者我可以采用其他什么方式在不使用该属性的情况下做同样的事情。我希望你们中的一些人能对此有所启发。
感谢高级和BR。
如果价格高于20,请显示成功。如果大于50,则显示错误。否则显示警告。
这些语句将完全按照此顺序检查。假设您的价格为80。
高于20吗?是的,所以显示成功。无需检查其余部分,因为第一个条件已经匹配。
如果要三个间隔,请不要从中间间隔开始。
<ObjectListItem numberState="{= ${invoice>ExtendedPrice} > 50 ? 'Error' : 20 >= ${invoice>ExtendedPrice} ? 'Warning' : 'Success' }" />
如果您确实想从中间开始,请使您的条件更加严格。
例如,“如果它大于20但小于或等于50,则表示成功”。
<ObjectListItem numberState="{= ${invoice>ExtendedPrice} > 20 && ${invoice>ExtendedPrice} <= 50 ? 'Success' : ${invoice>ExtendedPrice} > 50 ? 'Error' : 'Warning' }" />
&和
但是您知道,它很难调试也很难阅读。我强烈建议您使用formatter function。
您可以调试它(因为它是普通的JavaScript)并编写可读的三元或if / else语句。