【问题标题】:How to capture if current vendor is selected如果选择了当前供应商,如何捕获
【发布时间】:2019-01-22 12:49:13
【问题描述】:

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

我试过{% if collection.handle == vendor %}。但它返回 null 因为它只能捕获集合名称。

<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 并且在 = 之后是供应商。我想尝试以某种方式捕获用户正在导航的当前集合,并在整个 foreach 循环中添加 active 标签。

我意识到这可以通过为每个供应商和产品类型创建集合并使用collection.handel 来完成,但我有兴趣尝试通过捕获 URL 的最后一位来解决它。

【问题讨论】:

    标签: shopify liquid


    【解决方案1】:

    显示商店中的所有供应商

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

    【讨论】:

    • 谢谢@Krishna!所以存在.current_vendor.current_type(而不是current_product_type)来完成这项工作,这让生活更轻松。
    猜你喜欢
    • 2021-09-11
    • 2021-09-09
    • 2017-11-14
    • 2023-03-06
    • 2015-05-18
    • 2010-10-15
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多