根据 MeteorJS 中的另一个 Select2 过滤 Select2 中的集合

Filter the collection in Select2 based on another Select2 in MeteorJS

我想过滤我的 Products 集合以显示基于先前 select2 中的 ItemCategory 的下拉列表 (select2)。

目前,我可以从 ItemCategory SELECT2 中获取值,但不知道如何在 Products.find() 中使用该值,当我选择该选项时它应该更新。

这是当前代码:

HTML 模板 名称=receiveForm

<label for="category">Select Category: </label>
<select class="sel2js" id="category_sel" name="category">
      {{#each itemcategories}}
        {{> sel_itemcategory}}
      {{/each}}
    </select>
<label for="product">Product Name: </label>
<select class="sel2js" name="product">
      {{#each products_filtered}}
        {{> sel_product}}
      {{/each}}
    </select>

JS

Template.receiveForm.helpers({
itemcategories: function(){
  return ItemCategories.find({});
},
products_filtered: function(){
  return Products.find({category: itemcat_filter});
}
});

Template.receiveForm.onRendered(function(){
$(".sel2js").select2().on('change', function(e){
  var itemcat_filter = e.target.value;
  console.log(itemcat_filter)
});
});

架构

项目类别 名称:字符串

例如:原材料、包装等

产品 名称:字符串 类别:字符串(从 ItemCategories 中获取)

例如:盒子/包装、黄油/原材料

使用会话变量存储itemcat_filter:

// Introduce a default category:
var defaultCategory = '...';

// Update your products_filtered:
return Products.find({category: Session.get('itemcat_filter', defaultCategory});

// Update your onRendered:
$(".sel2js").select2().on('change', function(e){
  Session.set('itemcat_filter', e.target.value);
  console.log(itemcat_filter)
});