检查值以在 SAPUI5 中设置“可见”

Checking value to set `visible` in SAPUI5

我必须检查该值是否为空,如果是,则我不必显示带有值的标签。我这样试过:

<f:fields
        visible="{= typeof(${Data>/online/value}) !== 'undefined' 
        &amp;&amp; ${Data>/online/value} !== null }">
  <Text visible="{= ${Data>/name} === 'firstScreen' }" text="{i18n>label}"/>
  <Text visible="{= ${Data>/name} === 'firstScreen' }" text="{=${Data>/online/value}}"/>
</f:fields>

但即使 Data>/online/value 为空,它也会显示。 visible= or?

中是否有语法

为了稍微扩展一下我的评论,并且不知道 f:fields 到底是什么,我假设它是 sap.f 命名空间控件上的聚合之一,因为它以f 的小写和 XML 命名空间。

聚合就像容纳其他元素的桶,它们是实际控件的一部分。他们没有属性。这可能有点令人困惑,因为控件本身(也可以包含其他元素)确实具有属性。这可能是示例中始终显示字段的原因

最好将可见的支票移动到文本字段本身。您可以通过将值强制转换为布尔值来缩短检查时间:

!!${Data>/online/value}

undefinednull"" 时,它将计算为 false,如果它是一个适当的字符串或数字,它将计算为 true

字段聚合看起来更像:

<f:fields>
   <Label visible="{= ${Data>/name} === 'firstScreen' &amp;&amp; !!${Data>/online/value} }" text="{i18n>label}"/>
   <Text  visible="{= ${Data>/name} === 'firstScreen' &amp;&amp; !!${Data>/online/value} }" text="{=${Data>/online/value}}"/>
</f:fields>