如果选择了当前供应商,如何捕获

How to capture if current vendor is selected

在 collection 页面和索引的侧边栏中,我列出了所有具有以下代码的供应商。现在我想在选择特定供应商时将 .active class 添加到 <li>。我想对产品类型列表做同样的事情。如何检查选择了哪个供应商?

我试过了{% if collection.handle == vendor %}。但它 returns null 因为它只能捕获 collection 的名字。

<ul class="nav">
  {% for vendor in shop.vendors %}
      <li class="collection-container {% if collection.handle == vendor %}active {% endif %}">{{ vendor | link_to_vendor }}</li>
  {% endfor %}
</ul>

请注意 url 构造为 /collections/types?q=Nike,= 之后是供应商。我想尝试以某种方式捕获用户正在导航的当前 collection 并在整个 foreach 循环中添加一个 active 标记。

我意识到可以通过为每个供应商和产品类型创建 collection 并使用 collection.handel 来完成,但我有兴趣尝试通过捕获 URL。

显示商店中的所有供应商

<ul class="filter">
  {% for Vendor in shop.vendors %}
    {% if shop.vendors contains Vendor %}
      <li class="{% if collection.current_vendor == Vendor %}active{% endif %}">
        {{ Vendor | link_to_vendor }}
      </li>
    {% endif %}
  {% endfor %}
</ul>

如果您想获得特定的供应商列表

<ul class="filter">
  {% assign myvendor = 'samsung,xaomi,Nokia' | split:"," %}
  {% for Vendor in myvendor %}
    {% if shop.vendors contains Vendor %}
      <li class="{% if collection.current_vendor == Vendor %}active{% endif%}">
        {{ Vendor | link_to_vendor }}
      </li>
    {% endif %}
  {% endfor %}
</ul>