狂欢或固相线-筛选产品分类-taxons.js

时间:2019-02-07 18:34:45

标签: javascript ruby-on-rails spree solidus

比方说,我有3个分类单元(构建者,州,服务)。有没有一种方法可以过滤“编辑产品分类”以在单击时仅列出下拉菜单中的“服务”分类?狂欢视图是edit_product.html.erb

谢谢

taxons.js
//= require solidus_admin/Sortable
Spree.ready(function() {
  var productTemplate = HandlebarsTemplates['products/sortable'];
  var productListTemplate = function(products) {
    return _.map(products, productTemplate).join('') || "<h4>" + Spree.translations.no_results + "</h4>";
  };

  var saveSort = function(e) {
    var item = e.item;
    Spree.ajax({
      url: Spree.routes.classifications_api,
      method: 'PUT',
      data: {
        product_id: item.getAttribute('data-product-id'),
        taxon_id: $('#taxon_id').val(),
        position: e.newIndex
      }
    });
  };

  var formatTaxon = function(taxon) {
    return Select2.util.escapeMarkup(taxon.pretty_name);
  };

  $('#taxon_id').select2({
    dropdownCssClass: "taxon_select_box",
    placeholder: Spree.translations.find_a_taxon,
    ajax: {
      url: Spree.routes.taxons_search,
      params: {
        "headers": {
          "X-Spree-Token": Spree.api_key
        }
      },
      data: function(term, page) {
        return {
          per_page: 50,
          page: page,
          q: {
            name_cont: term
          }
        };
      },
      results: function(data) {
        return {
          results: data['taxons'],
          more: data.current_page < data.pages
        };
      }
    },
    formatResult: formatTaxon,
    formatSelection: formatTaxon
  });

  $('#taxon_id').on("change", function(e) {
    Spree.ajax({
      url: Spree.routes.taxon_products_api,
      data: {
        id: e.val,
        simple: 1
      },
      success: function(data) {
        $('#taxon_products').html(productListTemplate(data.products));

        var el = document.querySelector('#taxon_products')

        new Sortable(el, {
          draggable: ".sort_item",
          onEnd: saveSort
        });
      }
    });
  });
});

以上JS适用于Spree或Solidus电子商务平台。

希望能够过滤分类单元以包含名称“服务”。

要澄清: 假设我有“构建者,州和服务”分类法。在“管理编辑产品”中,用于构建器,州和服务的所有分类单元都在下拉列表中列出。

我希望能够过滤列出哪些分类法。在这种情况下,我希望下拉列表框仅列出“ 服务”分类单元。

**Would like to see this:**
Services -> Senior Care
Services -> Nurse

**Do not want this:**
Builders -> Wall
Builders-> Mason
Services -> Senior Care
Services -> Nurse
States -> Utah
States -> Texas

1 个答案:

答案 0 :(得分:0)

设法通过修改taxon_autocomplete.js来完成这项工作