【问题标题】:Comma separated list in LiquidLiquid中的逗号分隔列表
【发布时间】:2015-09-03 14:28:58
【问题描述】:

我在 for 循环中提取元数据值,需要在逗号分隔的列表中显示它们。

代码(为便于阅读添加了空格):

{% if asset.metadata['field01'] %}{{asset.metadata['field01']}}{% endif %}
{% if asset.metadata['field02'] %}{{asset.metadata['field02']}}{% endif %}
{% if asset.metadata['field03'] %}{{asset.metadata['field03']}}{% endif %}

目前显示为:Field 01 ValueField 02 ValueField 03 Value,但我希望它显示为Field 01 Value, Field 02 Value, Field 03 Value

在每个 if 语句后手动键入 ,,在最后一个值后留下一个逗号。

【问题讨论】:

    标签: shopify dotliquid


    【解决方案1】:

    您可能会发现my answer to this similar question 很有帮助。

    1. 将每个字段附加到带有分隔符的字符串:

      {% assign metadata = "" %}
      {% if asset.metadata['field01'] %}
        {% capture metadata %}{{ metadata | append: asset.metadata['field01'] | append: "|" }}{% endcapture %}
      {% endif %}
      <!-- repeat for fields 2 & 3 -->
      
    2. 使用splitjoin 格式化输出字符串:

      {{ metadata | split: "|" | join: ", " }}
      

    这将确保您的输出中不会出现尾随逗号。

    【讨论】:

      【解决方案2】:

      要从列表中打印逗号分隔的值,您可以使用以下命令:

      {%for v in values %} {{v}}{% if forloop.last != true %},{% endif %}{% endfor %}
      

      像这个逗号一样打印在除最后一个元素之外的所有元素之后。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-03
        • 2011-08-13
        • 2012-04-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多