条件语句一目了然

Condition statements in sightly

在 Sightly 模板语言中,对于 Adob​​e AEM6,如果条件为真,我如何使用特定的 class?

${properties.reduceImage} 是我的复选框,所以如果复选框被选中然后添加 class 如果没有那么它不会 return 任何东西。我不确定我这样做是否正确。

<div data-sly-test="${properties.reduceImage}" data-sly-unwrap>
    <div class="reduce-image">
    </div>
</div>

Sightly 的表达式语言有一些运算符可以执行类似的操作。

对于您的情况,您有两种可能性:条件运算符或逻辑 AND (&&) 运算符。

条件运算符

此运算符的工作方式类似于 data-sly-test,但在表达式级别。问号(?)之前的是条件,然后是两部分,用一栏隔开(:)。第一部分是条件为真时的输出,第二部分是条件为假时的输出(我们在您的示例中留空)。

<div class="${properties.reduceImage ? 'reduce-image' : ''}">
</div>

逻辑与运算符

这篇文章有点短,但其意图也不那么明确。它使用这样的事实,如 JavaScript、${value1 && value2} returns value1 如果它是假的(例如 false,或空字符串),否则它 returns value2:

<div class="${properties.reduceImage && 'reduce-image'}">
</div>

在这两个示例中,如果相应条件为假,class 属性将被完全删除,因为 Sightly 会删除所有表达式最终为空或为假的属性。

这是 Sightly 表达式语言的完整文档:
http://docs.adobe.com/docs/en/aem/6-1/develop/sightly/expression-language.html