2016-05-10 3 views
0

FLUIDリンクのviewhelpers additionalAttributesパラメータにFLUIDを組み込みたいとします。しかし、正しく設定する方法はわかりません。流体IF in Fluid LInkタグadditionalAttributes

エラーメッセージ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> 

が。誰でも助けることができますか?

答えて

0

これも非常に混乱しています。

あなたは最初の変数を設定しようとすることができます:

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

をしてからadditionalAttributesにこの新しい{myvar}を使用しています。あるいは、さらにadditionalAttributesという穴を変数に組み込んで使用することもできます。

+0

感謝。最後に、提案したように単一の変数を作成することになりましたが、FluidではなくController PHPクラスでビルドされました。 私はFluidを非常に混乱させ、あまり読みにくくないので、私はそのためにPHPを使用することを選択しました。 – Klaus

+0

多くの場合、PHPはもっと読みやすく、私は同意します。しかし、実際にはコントローラーロジックの一部ではありません。 ViewHelperの使用はどうですか?また、サイドノート(あなたの質問に対する解決策ではないかもしれませんが、おそらくあなたの問題に対する解決策かもしれません):空のデータ属性をレンダリングし、ロジックをJSに任せても大丈夫でしょうか? – sven

0

あなたは、「データ・効果」のデフォルトを設定することができたり、

なViewHelper vhsを使用して変数を宣言する必要がいずれか、「{layer.effectが}」の値を持つ場合にのみ作成された「データ・効果」属性を達成しようとする場合がございますあなたのコメントのための
<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

関連する問題