【问题标题】:Fluid IF in Fluid LInk Tag additionalAttributesFluid 链接中的 Fluid IF 标记附加属性
【发布时间】:2016-05-10 11:20:13
【问题描述】:

如果在 FLUID 链接 viewhelpers 的附加属性参数中,我想合并一个 FLUID。但我不知道如何正确设置。

我的尝试,它呈现了一条错误消息:

<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>

我只是不确定如何正确转义所有属性和条目。有人可以帮忙吗?

【问题讨论】:

    标签: html typo3 fluid


    【解决方案1】:

    我觉得这也很令人困惑。

    你可以尝试先设置一个变量:

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

    然后在附加属性中使用这个新的{myvar}。或者甚至更好地在变量中构建孔附加属性,然后使用它。

    【讨论】:

    • 感谢您的评论。最后,我最终按照您的建议构建了一个变量,但不是在 Fluid 中,而是在 Controller PHP 类中。我发现 Fluid 非常混乱,而且可读性不强,所以我选择使用 PHP。
    • 我同意,在许多情况下,PHP 的可读性更强。但是,它实际上不应该是控制器逻辑的一部分。使用 ViewHelper 怎么样?另外,附带说明(可能不是您问题的解决方案,但可能是您问题的解决方案):渲染一个空的数据属性并将逻辑留给 JS 不是可以吗?
    【解决方案2】:

    可能你尝试实现“数据效果”属性仅在“{layer.effect}”有值的情况下创建,或者你可以设置“数据效果”默认值,或者你必须使用vhsviewhelper 声明变量

    <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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多