1

Fluid テンプレートでカスタム 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+) を使用しないと、そこから変数を使用することはできません。

参照: Fluid テンプレートで既存の JSON 文字列を解析しますか?

ViewHelper が実際に配列を返す場合、ユース ケースを解決する最も効率的な方法は次のとおりです。

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