如何在流体模板中使用来自自定义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中,我想通过f: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>
答案 0 :(得分:1)
您的<f:alias
代码已损坏。您需要使用内联注释,因为您想要访问另一个viewhelper中的viewhelper
https://wiki.typo3.org/Fluid_Inline_Notation
<f:alias map="{cars: '{car:CarInfo(length:\'5\')}'}">
你是否还包括这样的命名空间?
{namespace car=Vendor\Extension\ViewHelpers}
答案 1 :(得分:0)
您的ViewHelper是返回数组还是JSON字符串?如果这是一个JSON字符串,则不能使用第三方ViewHelper或JSONVariableProvider(Fluid standalone和TYPO3v8 +)来消耗它的变量。
请参阅:Parse an existing JSON string in fluid template?
如果您的ViewHelper确实返回了一个数组,那么解决您的用例的最有效方法是:
<f:for each="{car:carInfo(length: 5)}" as="car">...</f:for>