【问题标题】:Pass data to liquid via ajax通过 ajax 将数据传递给 Liquid
【发布时间】:2021-01-26 10:25:47
【问题描述】:

我想为我的收藏页面在 shopify 中使用 ajax 进行过滤。 所以我有从 collection.products 收集产品的 ajax 代码:
let allProducts = {{ collection.products | json }};
  $(".sidebar-btn").on("click", () => {
    allProducts.forEach(product => {
      jQuery.ajax({
                  url: '/products/'+product.handle,
                  dataType: 'json'
                })
                .done(function(data){
                  console.log(data.product.tags);
                  if(data.product.vendor !== "NATURECAN"){
                    console.log($(`.product-${data.product.id}`));
                  }
                });
    });
  });

它会过滤代码,但问题是产品已经渲染到 DOM。我想要的是将通过过滤器的产品发送回“包含”:

<ul class="grid grid--uniform{% if collection.products_count > 0 %} grid--view-items{% endif %}">

   
    {% for product in collection.products %}
        
      <li class="grid__item grid__item--{{section.id}} {{ grid_item_width }} product-{{product.id}}">
        {% include 'product-card-grid', max_height: max_height, product: product, show_vendor: section.settings.show_vendor %}
      </li>

有没有办法做到这一点。我不能使用 url 作为参数,所以我必须这样做。提前致谢。

(P.S. 我对 shopify 和流动性有点陌生,所以如果解释不够好,我很抱歉)

【问题讨论】:

    标签: jquery ajax shopify liquid


    【解决方案1】:

    根据您的代码,我认为您想为供应商过滤产品,对吗? 如果是,那么您可以直接将这种方式列入默认documentation

    根据文档,您可以像这样查询集合/collections/vendors?q=VENDOR

    【讨论】:

    • 不,我想过滤供应商、产品、价格范围很多东西
    • 然后只需使用任何为您提供更好功能的第三方应用程序。
    • 不,我必须开发,侧边栏过滤器,我自己,我已经设法使它与液体一起工作,但我需要 ajax 以获得更好的功能
    猜你喜欢
    • 2011-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-16
    • 1970-01-01
    • 1970-01-01
    • 2023-01-18
    • 2021-04-14
    相关资源
    最近更新 更多