这里是 AEM 新手。 假设我有:
<div
data-text="${myVariable.someProperty}"
...
如果未定义,我不希望数据文本返回“未定义”字符串。我尝试使用逻辑运算符,但它不起作用..
<div
data-text="${myVariable.someProperty ? myVariable.someProperty : ''}"
我认为 myVariable.someProperty
返回未定义而不是 bool 值。有什么想法可以检查 HTL 中的未定义(或者我做的事情完全错误)吗?
最佳答案
HTL 不会为未定义的值呈现任何内容。假设一个 JS 使用对象:
logic.js:
use(function () {
return {
test: undefined
};
});
和一个HTL脚本:
<div data-sly-use.logic="logic.js" data-text="${logic.test}"></div>
输出将是:
<div></div>
该属性被删除,因为它是假的(请参阅 attributes detailed examples )。如果您想保留该属性,您可能需要将 HTL 表达式修改为 ${logic.test ||真}
。
如果您修改使用对象以返回 'undefined'
字符串:
use(function () {
return {
test: 'undefined'
};
});
然后你会得到以下输出:
<div data-text="undefined"></div>
在这种情况下,您可能需要修改表达式来测试 'undefined'
字符串: ${logic.test == 'undefined' ? '':逻辑.测试}
。同样,您可以通过将 ''
替换为 true
来保留该属性。
关于aem - 如何检查 HTL (AEM) 中 undefined variable 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48758723/