2

我创建了一个简单的下拉列表,其中包含两个选项 Yes 和 No,它们分别返回“true”和“false”的值。

<enableTool
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/foundation/form/select"
class="cq-dialog-dropdown-showhide"
cq-dialog-dropdown-showhide-target=".list-option-listfrom-showhide-target"
fieldLabel="Enable tooltip?"
name="./enableTool">
    <items jcr:primaryType="nt:unstructured">
        <true
            jcr:primaryType="nt:unstructured"
            text="Yes"
            value="true"/>
        <false
            jcr:primaryType="nt:unstructured"
            text="No"
            value="false"/>
    </items>
</enableTool>

我想一目了然地实现以下逻辑

if (value of the returned string is true)
{
Do something
}

为此,编写了以下简洁的代码

<div data-sly-test="${properties.enableTool == 'true'}"> Value is true</div>

当我运行此“值为真”时,无论propeties.enableTool 的值是真还是假,总是会打印。

请注意,如果我写<div> ${properties.enableTool} </div>,我会根据我的选择正确地看到值是真还是假。

知道我在做什么错吗?

提前致谢!

4

1 回答 1

0

我相信您正在寻找HTL 条件三元运算符。

<p>${properties.enableTool ? "tool is enabled" : "tool is disabled"}</p>
于 2020-01-23T01:10:06.863 回答