我已经看到了大量与条件属性相关的示例,他们都在谈论这一点:
<img data-srcset="${myModel.isPrimaryImg ? '/img/image1.jpg': '/img/image2.jpg'}" >
这要么呈现
<img data-srcset="/img/image1.jpg" >
要么
<img data-srcset="/img/image2.jpg" >
分别取决于$ {myModel.isPrimaryImg}是true还是false
这不是我想要的,上面的示例处理属性的“值”部分
我想将ternery条件放在属性的“ Key”部分,如下所示:
<img ${myModel.isTrue ?'data-srcset=' : 'srcset='} = "/img/common-image.jpg" >
我希望它能够呈现
要么
<img data-srcset= "/img/common-image.jpg" >
要么
<img srcset= "/img/common-image.jpg" >
我记得使用JSP可以做到这一点
我可以期望它按我的意愿工作的唯一方法是添加以下条件:
<img data-sly-test="${myModel.isTrue}" data-srcset = "/img/common-image.jpg" ><!-- When TRUE -->
<img data-sly-test="${!myModel.isTrue}" srcset = "/img/common-image.jpg" >!-- When FALSE -->
但这需要两个完整的标签才能针对每种情况显示一个
是否有更好的方法将三元条件放在HTL中用于数据属性键而不是值?
我有很多这样的标签,所以我在考虑是否只能将条件放在一行中,否则我将使标签数量加倍,其中每个标签将基于标志的值包含一个属性,即正确和错误条件之一。
您可以:
data-sly-attribute
和暴露的属性通过使用-Object对象的地图。然后,您可以在“使用对象”中控制地图键。<img data-srcset="${myModel.isTrue ? '/img/common-image.jpg' : ''}" srcset="${!myModel.isTrue ? '/img/common-image.jpg' : ''}">
这是合理可读的,将使您的HTL脚本保持HTML有效性。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句