gpt4 book ai didi

Typo3 流体 : Add Class to Element if it is First

转载 作者:行者123 更新时间:2023-12-02 15:08:05 24 4
gpt4 key购买 nike

我正在使用 Fluid 将 Contentenments 提供给扩展:

<f:for each="{field.children}" as="myObj" iteration="iterator">
{myObj.render -> f:format.raw()}
</f:for>

工作正常。

元素看起来像这样:

<div class="childElement">
<h1>I'm a Caption!</h1>
<p>I'm some text.....</p>
</div>

然后元素以特定方式显示。

现在我希望第一个元素一个额外的类叫做“first”。第一个元素将如下所示:

<div class="childElement first">
<h1>I'm a Caption!</h1>
<p>I'm some text.....</p>
</div>

我尝试使用迭代器解决这个问题,并简单地检查迭代器是否“是第一个”。像这样:

<f:for each="{field.children}" as="myObj" iteration="iteration">
<f:if condition="iteration.isFirst">
<f:then>
...

但是我仍然需要插入类,无论如何感觉必须有更好的方法来解决它。

有人可以指出我正确的方向吗?


编辑(解决方案):

在我完成 "<div class="childElement">" 之后,接受的答案对我有用-包装在扩展中而不是在 child 中。我的解决方案现在看起来像这样:

<f:for each="{field.children}" as="myObj" iteration="iterator">
<div class="childElement {f:if(condition:iterator.isFirst, then: ' first')}">
{childDce.render -> f:format.raw()}
</div>
</f:for>

最佳答案

您可以简单地使用 f:if viewhelper 的内联版本避免在 <f:then> 中重复自己-> <f:else>构造:

<f:for each="{field.children}" as="myObj" iteration="iter">
<div class="childElement{f:if(condition:iter.isFirst, then: ' first')}">

因为你没有 else 案例,你可以放弃它。根据您的流体版本,您可能需要用更多花括号包裹您的条件表达式,如下所示:

<f:for each="{field.children}" as="myObj" iteration="iter">
<div class="childElement{f:if(condition: '{iter.isFirst}', then: ' first')}">

但这不是必需的(尽管它有效)。

关于Typo3 流体 : Add Class to Element if it is First,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46000938/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com