2016-05-10 18 views
0

Ich möchte ein FLUID integrieren, wenn in einer FLUID-Link-Ansicht der additionalAttributes-Parameter verwendet wird. Aber ich weiß nicht, wie ich es richtig einstellen soll.Fluid-IF im Fluid-LInk-Tag additionalAttributes

Mein Versuch, die eine Fehlermeldung renderd:

<f:link.page 
    pageUid="{layer.link}" 
    class="ms-layer ms-button" 
    additionalAttributes="{ 
     data-offset-x:'{layer.offsetX}', 
     {f:if(condition: \"{layer.effect} != ''\", then: \"data-effect:'{layer.effect}'\")} 
    }">{layer.content}</f:link.page> 

Ich bin nur nicht sicher, wie alle korrekt die Eigenschaften und die Einträge zu entkommen. Jeder kann helfen?

Antwort

0

Ich finde das auch sehr verwirrend.

Sie können versuchen, zu setzen zuerst eine Variable:

<v:variable.set name="myvar" value="{f:if(condition: layer.effect != '', then: 'data-effect:'{layer.effect})}" /> 

und dann diese neuen {myvar} in dem additionalAttributes verwenden. Oder vielleicht besser das Loch additionalAttributes in einer Variablen erstellen und dann verwenden.

+0

Vielen Dank für Ihren Kommentar. Schließlich habe ich am Ende eine einzelne Variable erstellt, wie du es vorgeschlagen hast, aber nicht in Fluid, sondern in der Controller PHP Klasse. Ich finde Fluid sehr verwirrend und nicht sehr lesbar, also entschied ich mich dafür PHP zu verwenden. – Klaus

+0

In vielen Fällen ist PHP viel besser lesbar, da stimme ich zu. Es sollte jedoch wirklich nicht Teil der Steuerungslogik sein. Wie wäre es mit einem ViewHelper? Auch, nebenbei bemerkt (möglicherweise keine Lösung für Ihre Frage, aber vielleicht eine Lösung für Ihr Problem): wäre es nicht in Ordnung, ein leeres Datenattribut zu rendern und die Logik dem JS zu überlassen? – sven

0

könnten Sie versuchen, „Daten-Effekt“ Attribut nur, wenn erstellt zu erreichen ‚{layer.effect}‘ Wert hat, können Sie entweder „Daten-Effekt“ default eingestellt oder Sie haben Variable zu deklarieren mit vhs Viewhelper

<f:link.page 
    pageUid="{layer.link}" 
    class="ms-layer ms-button" 
    additionalAttributes="{data-offset-x:'{layer.offsetX}',data-effect:'{f:if(condition: \'{layer.effect}\', then: \'something\', else: \'{layer.effect}\')}'}" >{layer.content}</f:link.page> 

more about fluid page link

Verwandte Themen