【问题标题】:How to concatenate strings in Sightly/HTL?如何在 Sightly/HTL 中连接字符串?
【发布时间】:2017-05-08 06:45:47
【问题描述】:

我有以下代码:

<sly data-sly-use.link="${'core.impl.view.tools.LinkUtils' @ path=properties.targetURL}"></sly>

我想将properties.linkType 连接到properties.targetURL

有什么想法可以做到吗?我在网上找到了一些例子,但它们似乎不适用于我的情况。

【问题讨论】:

    标签: sightly


    【解决方案1】:

    这取决于您想到的字符串连接类型:

    1. 不支持使用运算符连接字符串,即。你不能这样做 ${properties.targetURL + properties.linkType}。一种解决方法(@Jens 建议)是执行以下操作:&lt;sly data-sly-test.concatenated="${'{0}{1}' @ format=[properties.targetURL, properties.linkType]}"&gt;&lt;/sly&gt;
    2. 在 HTML 输出中连接字符串可以通过将 HTL 表达式彼此相邻放置来完成,即。 ${properties.targetUrl}${properties.linkType}
    3. 通过多个表达式选项支持将两个字符串发送到使用对象:&lt;sly data-sly-use.link="${'core.impl.view.tools.LinkUtils' @ path=properties.targetURL, type=properties.linkType}"&gt;&lt;/sly&gt;
    4. 在某些情况下可以使用URI Manipulation 连接字符串以形成 URL

    【讨论】:

    • 为了完整起见,还有另一个不是真正有用的选项:${'{0}{1}' @ format=[properties.string1, properties.string2]}。见github.com/Adobe-Marketing-Cloud/htl-spec/blob/master/…
    • @Jens,这非常有创意,尤其是与data-sly-test结合使用时
    • 我也在考虑使用data-sly-test 的解决方法,但我不确定您是否可以将formatdata-sly-test 一起使用。如果是这样,您可以创建一个新的连接字符串,然后可以在操作想要使用它的语句中使用它。
    【解决方案2】:

    我只想通过使用@ join,再添加一种将字符串连接到上述答案的方法。

    <sly data-sly-test="${['String1','String2','String3'] @ join = '-'}"/>
    

    它会给出如下输出: String1-String2-String3

    【讨论】:

    • 你能把完整的语法发给我吗,你在写什么
    • 看来这是我的错误,我使用了错误的上下文,这就是为什么这个 join = ' 不起作用,所以我收回我写的东西,一切正常
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多