桌子上的数量为空时如何隐藏单位?

时间:2018-10-08 06:40:52

标签: sapui5

我有一个看起来如下的表:

enter image description here

如图所示,红色边框标记为0。
我尝试如下

const sValuePath = "{Objects>" + oProp.NameChar + "}";
return new sap.m.ObjectNumber({
    number: sValuePath,
    unit: oProp.UnitTExt,
    visible: "{= ${sValuePath} > 0}"
});

但是它不起作用。我在做什么错了?

3 个答案:

答案 0 :(得分:1)

嗨,您可以在XML视图中使用表达式绑定,在该视图中为该列定义了单元格

像IDK一样的东西取决于您使用的东西,请参见下面的示例

<Text text="{=$(quantity) === '' ? '' : $(quantity) + '' + $(unit)}" />

希望,这会有所帮助

答案 1 :(得分:1)

正如塞巴斯蒂安·马赫(Sebastian Mahr)所说,您最终得到了两个大括号:

已经有花括号:

const sValuePath = "{Objects>" + oProp.NameChar + "}";

更多花括号:

visible: "{= ${sValuePath} > 0}"

从原始代码开始:

const sValuePath = "{Objects>" + oProp.NameChar + "}";
return new sap.m.ObjectNumber({
    number: sValuePath,
    unit: oProp.UnitTExt,
    visible: "{= ${sValuePath} > 0}"
});

您需要添加字符串连接并删除多余的花括号,因此您将获得以下结果:

const sValuePath = "{Objects>" + oProp.NameChar + "}";
return new sap.m.ObjectNumber({
    number: sValuePath,
    unit: oProp.UnitTExt,
    visible: "{= $"+ sValuePath + " > 0}"
});

答案 2 :(得分:0)

您不会在visibiliry属性中隐含字符串,即使您愿意使用双{}

尝试类似的东西

const sValuePath = "Objects>" + oProp.NameChar;
return new sap.m.ObjectNumber({
    number: "{"+sValuePath+"}",
    unit: oProp.Currency,
    visible: "{= ${"+sValuePath+"} > 0}"
});