我在表中有一列,其值绑定到数据模型的属性。
text = { modelName>/OrderNo}
。如何基于标志使其有条件?如果来自模型isReturnable = true
的属性,我想显示text = {modelName>/ReturnNo}
,否则我想显示{OrderNo}
。如何为此构建语法?
<table:Column>
<Label class="smartist-table-column-header" text="Qty Returned"/>
<table:template>
<Text text="{ path: 'OrderDetail>OrderNo'}"/>
</table:template>
</table:Column>
答案 0 :(得分:4)
您可以使用表达式绑定。 有关详细信息,请参见URL:https://ui5.sap.com/#/topic/daf6852a04b44d118963968a1239d2c0
解决问题的方法:
<Text text="{= ${modelName>isReturnable} ? ${modelName>/ReturnNo} : ${OrderDetail>OrderNo}}" />
答案 1 :(得分:1)
由于表达式绑定将是解决此问题的更合适的方法, 自定义格式也可以是实现此目的的一种方法。
在视图中:
<Text text= "{ parts:[
{path: "modelName>isReturnable"},
{path: "modelName>ReturnNo"},
{path: "modelName>OrderNo"},
],
formatter: '.formatOrderNo'
}"/>
在相应的控制器中
formatter: function(isReturnable, sReturnNo, sOrderNo){
if(isReturnable == true){
return sReturnNo;
}else{
return OrderNo;
}
}
在更复杂的逻辑中,需要在绑定之前对字段执行一些计算/操作,自定义格式是必经之路。 Custom Formatters in SAPUI5