簡體   English   中英

TYPO3 Fluid f:對於每個迭代器

[英]TYPO3 Fluid f:for each iterator

我有一個關於 TYPO3 6.2 中的f:for ViewHelper 的簡單問題

如何將偏移量應用到迭代器以從索引 2 開始?


例子:

<f:for each="{facility.media}" as="media" iteration="iterator">


                             <!-- this index should start at 2-->
    <img src="..." data-lightbox-index="{ iterator.index }">


</f:for>

謝謝你的幫助。

你可以使用額外的 f:if

<f:for each="{facility.media}" as="media" iteration="iterator">
    <f:if condition="{iterator.index} > 2">
          <img src="..." data-lightbox-index="{ iterator.index }">
    </f:if>
</f:for>

不可能。

你可能會做變通辦法。
您可以將所需的值分配給臨時變量。 多種可能性:

  • 使用f:cycle (只有很少的條目才有可能)
  • 使用ext:vhs創建計算值/將計算值分配給流體變量
  • 使用f:alias在循環中創建局部流體變量。

對於后兩個解決方案,您需要計算的可能性,這在流體中沒有給出。
但您可以使用打字錯誤的 viewhelper:

lib.calc = TEXT
lib.calc {
    current = 1
    prioriCalc = 1
}

並用{f:cObject(typoscriptObjectPath:'lib.calc',data:{iterator.index}+2)}調用它

<f:for each="{facility.media}" as="media" iteration="iterator">
    <f:alias map="{newIndex:'{f:cObject(typoscriptObjectPath:\'lib.calc\',data:\'{iterator.index}+2\')}'}">
        <img src="..." data-lightbox-index="{newIndex}" />
    </f:alias>
</f:for>

您可以使用如下所示的fluid ForViewHelper來執行此操作。

使用 Index 和 Index start 始終為 0。因此,您可以按照以下條件執行此操作。

<f:for each="{facility.media}" as="media" iteration="iterator">
    <f:if condition="{iterator.index} >= 2">
          <img src="..." data-lightbox-index="{ iterator.index }">
    </f:if>
</f:for>

使用 Cycle 和 cycle 總是從 1 開始。

<f:for each="{facility.media}" as="media" iteration="iterator">
    <f:if condition="{iterator.cycle} >= 3">
          <img src="..." data-lightbox-index="{ iterator.index }">
    </f:if>
</f:for>

更多ForViewHelper

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM