Shopify 有没有一种方法可以连接两个字符串,然后在输出标记内处理结果而不是作为字符串?

Shopify 有没有一种方法可以连接两个字符串,然后在输出标记内处理结果而不是作为字符串?,shopify,liquid,Shopify,Liquid,以下是我试图实现的目标: <ul class="site-nav__dropdown"> {% for childlink in linklists[child_list_handle].links %} this - {% assign color_from_settings = 'settings.collection_color_' | append: forloop.index %} used here - <li{% if childlink.activ

以下是我试图实现的目标:

  <ul class="site-nav__dropdown">
    {% for childlink in linklists[child_list_handle].links %}
this - {% assign color_from_settings = 'settings.collection_color_' | append: forloop.index %}
used here -  <li{% if childlink.active %} class="site-nav--active" {% else %} style="background-color: {{ color_from_settings }}" {% endif %}>
        <a href="{{ childlink.url }}" class="site-nav__link">{{ childlink.title | escape }}</a>
      </li>
    {% endfor %}
  </ul>
而不是从settings_data.json获取的实际颜色,如下所示:

{
  "current": "Default",
  "presets": {
    "Default": {
      ...
      "collection_color_1": "#9997c0",
      "collection_color_2": "#8997b1",
      "collection_color_3": "#7997a2",
      "collection_color_4": "#699793",
      "collection_color_5": "#599784",
      "collection_color_6": "#499775",
      "collection_color_7": "#399766",
      "collection_color_8": "#299757",
      "collection_color_9": "#199748",
      "collection_color_10": "#099739"
    }
  }
}

有没有一种方法可以通过编程实现这一点,或者我真的必须使用吗?

看看我的答案

试试这个:

{% assign color_from_settings = 'collection_color_' | append:forloop.index %}
...
{{ settings[color_from_settings] }}

没用。奇怪的是,我得到了“:”作为输出,而不是颜色值。我使用的确切代码如下:
我也尝试了
{%settings[color\u from\u settings]]}
但这甚至没有上传(使用shopify ruby gem)。给了我一个“422无法处理的实体”错误。它对我有效-{%fori in(1..2)%}{%assign color_from_settings='collection_color_'| append:forloop.index%}
  • 1
  • {%endfor%}Ah。。。对不起,它确实有用。我忘了将“设置.集合颜色”更改为“集合颜色”。愚蠢的我。。。
    {% assign color_from_settings = 'collection_color_' | append:forloop.index %}
    ...
    {{ settings[color_from_settings] }}