如何在XML视图中的链式IF中放入3个条件?

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

我是openUi5的新手,他正在尝试开发一个简单的hello world应用。我的应用程序视图之一(InvioceList.view.xml)具有以下代码:

code that works fine

控件numberState的属性ObjectListItem允许我根据费率更改发票金额的颜色。

hello world app

但是,有效的代码仅规定两种颜色,但是我想使用三种颜色(Success表示绿色,Warning表示黄色,Error表示红色),所以为了做到这一点,我尝试了与此:

代码:

<ObjectListItem numberState="{= ${invoice>ExtendedPrice} > 20 ? 'Success' : ${invoice>ExtendedPrice} > 50 ? 'Error' : 'Warning' }" />

code that doesn't work fine

因此,由于我是这方面的初学者,因此我现在只能识别我正在使用的条件语句是三元运算符或多个条件语句,但是由于某些原因,当使用两个以上条件语句时,它不能正常工作间隔(可能是语法)。

因此,我想了解我在做什么错,或者我可以采用其他什么方式在不使用该属性的情况下做同样的事情。我希望你们中的一些人能对此有所启发。

感谢高级和BR。

sapui5 ui5-library
1个回答
0
投票
您的间隔定义错误。现在你有

如果价格高于20,请显示成功。如果大于50,则显示错误。否则显示警告。

这些语句将完全按照此顺序检查。

假设您的价格为80。

高于20吗?是的,所以显示成功。无需检查其余部分,因为第一个条件已经匹配。

如果要三个间隔,请不要从中间间隔开始。

<ObjectListItem numberState="{= ${invoice>ExtendedPrice} > 50 ? 'Error' : 20 >= ${invoice>ExtendedPrice} ? 'Warning' : 'Success' }" />

如果您确实想从中间开始,请使您的条件更加严格。

例如,“如果它大于20但小于或等于50,则表示成功”。

<ObjectListItem numberState="{= ${invoice>ExtendedPrice} > 20 &amp;&amp; ${invoice>ExtendedPrice} &lt;= 50 ? 'Success' : ${invoice>ExtendedPrice} > 50 ? 'Error' : 'Warning' }" />

&和

但是您知道,它很难调试也很难阅读。我强烈建议您使用formatter function


您可以调试它(因为它是普通的JavaScript)并编写可读的三元或if / else语句。
© www.soinside.com 2019 - 2024. All rights reserved.