2017-09-06 98 views
0

我想过滤我的Products集合以显示基于上一个select2中的ItemCategory的下拉列表(select2)。根据MeteorJS中的另一个Select2筛选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 名称:字符串

例如:原材料,包装材料等

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

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

回答

0

使用会话变量来存储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) 
});