2017-09-06 77 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) 
});