1

如何在我的流体模板中使用来自自定义 ViewHelper 的数据。

我制作了一个自定义 ViewHelper,它返回如下数据:

{cars: {
0: {car:'VW Golf V TDi 140 GT Sport DSG Van',price:'144900'},
1: {car:'Citroën C5 HDi Elegance',price:'168900'},
2: {car:'Seat Leon TSi Stylance',price:'173000'}
}}

并尝试了下面的代码,但它没有在f:for循环中打印任何内容。在 FLuid 中,我想用 af:for 循环来完成它。但是如何将我的数据放入f:for语法中?

<f:alias map="<car:CarInfo length="5" />">
  <table cellpadding="5" cellspacing="0" border="2">
    <f:for each="{cars}" as="car">
      <tr>
        <td>{car.car}</td>
        <td>{car.price}</td>
      </tr>
    </f:for>
  </table>
</f:alias>
4

2 回答 2

1

你的<f:alias代码坏了。您需要使用内联注释,因为您想访问另一个视图助手中的视图助手 https://wiki.typo3.org/Fluid_Inline_Notation

<f:alias map="{cars: '{car:CarInfo(length:\'5\')}'}">

你也包括你的命名空间是这样的吗?

{namespace car=Vendor\Extension\ViewHelpers}
于 2016-09-02T11:35:48.177 回答
0

您的 ViewHelper 是否返回数组或 JSON 字符串?如果这是一个 JSON 字符串,则在不使用第三方 ViewHelper 或 JSONVariableProvider(Fluid 独立和 TYPO3v8+)的情况下,您无法使用其中的变量。

请参阅:解析流体模板中的现有 JSON 字符串?

如果您的 ViewHelper 确实返回了一个数组,那么解决您的用例的最有效方法是:

<f:for each="{car:carInfo(length: 5)}" as="car">...</f:for>
于 2016-09-03T01:10:54.657 回答