如何根据另一个组件的存在条件有条件地将类添加到木兰组件模板?

时间:2019-05-14 17:43:26

标签: freemarker magnolia

仅当内容编辑者选择将字幕组件添加到页面时,我才想将类应用于我的木兰标题组件。下面我尝试做的事示例:

[#assign subtitle = "somehow get a reference to the subtitle component"]
[#assign subtitleExists = subtitle?has_content]
<div class="title ${subtitleExists?then('removePadding','')}">
  ${model.render('titleCopy')!}
</div>

这可能吗?我很乐意添加更多信息,以帮助阐明我在需要时在此处尝试做的事情。谢谢!

1 个答案:

答案 0 :(得分:0)

组件是原子的,因此它们通常不会互相看到,也不会互相影响。这将是对组件或父组件或页面本身进行分组的区域的工作。

也就是说,如果页面和模板的结构不允许您使用任何其他解决方案,则可以通过字幕组件中的request属性设置一些标志,然后检查组件中是否存在所述标志。 br /> 一方面是ctx.setAttribute("subtitleExists", true, 1),而另一方面是ctx.getAttribute("subtitleExists")。 1代表属性的本地(请求)范围。