Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在AEM中使用HTL有条件地添加数据属性?_Aem_Sightly - Fatal编程技术网

如何在AEM中使用HTL有条件地添加数据属性?

如何在AEM中使用HTL有条件地添加数据属性?,aem,sightly,Aem,Sightly,我已经看到了大量与条件属性相关的示例,它们都谈到了这一点: <img data-srcset="${myModel.isPrimaryImg ? '/img/image1.jpg': '/img/image2.jpg'}" > 这要么导致 <img data-srcset="/img/image1.jpg" > <img data-srcset= "/img/common-image.jpg"

我已经看到了大量与条件属性相关的示例,它们都谈到了这一点:

<img  data-srcset="${myModel.isPrimaryImg ? '/img/image1.jpg': '/img/image2.jpg'}" >

这要么导致

<img data-srcset="/img/image1.jpg" >
<img  data-srcset= "/img/common-image.jpg" >


取决于${myModel.isPrimaryImg}是否分别为真或假

这不是我想要的,上面的示例处理属性的“value”部分

我想在属性的“Key”部分设置ternery条件,如下所示:

<img  ${myModel.isTrue ?'data-srcset=' : '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 -->

!-- 当为FALSE时-->
但这需要两个完整的标签,每个条件一个

是否有更好的方法将数据属性键而非值的三元条件放入HTL中?

我有很多这样的标签,所以我在想,如果我可以只在一行中适应条件,否则我会将标签数量增加一倍,每个标签将包含一个基于标志值的属性,一个为真,一个为假条件。

您可以:

  • 使用
    data-sly-attribute
    ,并通过使用对象将属性显示为映射。然后可以控制使用对象中的贴图关键点
  • 利用未呈现的空属性()并执行以下操作:
  • 
    

    这将使您的HTL脚本HTML保持有效。

    这将导致两个数据属性都呈现一个填充一个空。我希望一次只存在一个属性。@Oliver,正如我在规范中所写和记录的那样,空属性被HTL.works删除。这就是我所做的<代码>标题
    <img  srcset= "/img/common-image.jpg" >
    
    <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 -->
    
    <img data-srcset="${myModel.isTrue ? '/img/common-image.jpg' : ''}" srcset="${!myModel.isTrue ? '/img/common-image.jpg' : ''}">