Typo3流体:将类添加到元素(如果它是第一个)
我正在使用流体将ContentElements输入到扩展中:Typo3流体:将类添加到元素(如果它是第一个),typo3,fluid,Typo3,Fluid,我正在使用流体将ContentElements输入到扩展中: <f:for each="{field.children}" as="myObj" iteration="iterator"> {myObj.render -> f:format.raw()} </f:for> {myObj.render->f:format.raw()} 这很好用 元素看起来像这样: <div class="childElement"> <h1>I'
<f:for each="{field.children}" as="myObj" iteration="iterator">
{myObj.render -> f:format.raw()}
</f:for>
{myObj.render->f:format.raw()}
这很好用
元素看起来像这样:
<div class="childElement">
<h1>I'm a Caption!</h1>
<p>I'm some text.....</p>
</div>
<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>
...
我是一个字幕!
我正在发一些短信
然后以某种方式显示元素
现在我希望第一个元素有一个名为“first”的额外类。第一个元素将如下所示:
<div class="childElement">
<h1>I'm a Caption!</h1>
<p>I'm some text.....</p>
</div>
<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">
<h1>I'm a Caption!</h1>
<p>I'm some text.....</p>
</div>
<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>
...
...
但是我仍然需要插入这个类,不管怎样,我觉得必须有更好的方法来解决它
有人能给我指一下正确的方向吗
编辑(解决方案): 在我将
“
”包装在扩展名中,而不是在孩子身上之后,接受的答案对我有效。
我的解决方案如下所示:
<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>
{childce.render->f:format.raw()}
您可以简单地使用的内联版本,以避免在
->
构造中重复您自己:
<f:for each="{field.children}" as="myObj" iteration="iter">
<div class="childElement{f:if(condition:iter.isFirst, then: ' first')}">
既然你没有别的案子,你可以放弃它。
根据流体版本的不同,可能需要使用更多的大括号来包装条件表达式,如下所示:
<f:for each="{field.children}" as="myObj" iteration="iter">
<div class="childElement{f:if(condition: '{iter.isFirst}', then: ' first')}">
但这应该是不必要的(尽管它可以工作)。您可以简单地使用的内联版本,以避免在
->构造中重复您自己:
<f:for each="{field.children}" as="myObj" iteration="iter">
<div class="childElement{f:if(condition:iter.isFirst, then: ' first')}">
既然你没有别的案子,你可以放弃它。
根据流体版本的不同,可能需要使用更多的大括号来包装条件表达式,如下所示:
<f:for each="{field.children}" as="myObj" iteration="iter">
<div class="childElement{f:if(condition: '{iter.isFirst}', then: ' first')}">
但这不应该是必要的(尽管它是有效的)。哇,太快了!而且成功了。(虽然我必须在渲染之前包装孩子,但因为我可以直接更改孩子,所以这不会是一个问题,而且可能是“更好的练习…”谢谢!哇,太快了!而且成功了。(虽然我必须在渲染之前包装孩子,但因为我可以直接更改孩子,所以这不会是一个问题,而且可能是“更好的练习…”谢谢!将不起作用,因为您需要在此处使用大括号:条件=“{….}”将不起作用,因为您需要在此处使用大括号:条件=“{….}”