2015-12-16 5 views
0

Как сгруппировать подкатегорию в категории, к которой они принадлежат? Например, категория - это ИКТ, и я хочу только подкатегорию (например, ноутбук, компьютер и т. Д.), Которая относится к отображению ИКТ в раскрывающемся списке.Подкатегория категории в категории

Может ли кто-нибудь показать мне решение, поскольку я новичок в области программирования. Благодаря передовой ..

addItem.html

<template name="addItem"> 
    <div class="form-group"> 
       <select class="form-control" name="category_name"> 
        <option selected> --Category-- </option> 
        {{#each category}} 
         {{> downCategory}} 
        {{/each}} 
       </select> 
       </div> 

       <div class="form-group"> 
       <select class="form-control" name="subcategory_name"> 
        <option selected> --Subcategory-- </option> 
        {{#each subcategory}} 
         {{> downSubcategory}} 
        {{/each}} 
       </select> 
       </div> 
    </template> 


<template name="downCategory"> 
    <option id="{{_id}}">{{category_name}} </option> 
</template> 

<template name="downSubcategory"> 
    <option id="{{_id}}">{{subcategory_name}} </option> 
</template> 

addItem.js

Template.addItem.helpers({ 
    category: function(){ 
     return Category.find({}); 
    }, 
    subcategory: function(){ 
     return Subcategory.find({}); 
    } 
}); 
+0

Могли бы вы предоставить структуру документов, коллекций '' category' и Subcategory' ? –

ответ

1

Я предположил бы, что вам нужно иметь иерархическую структуру данных для ваших категорий, вы можете сделать это легко при создании категорий имеет необязательное поле parentId в вашей категории, а затем запрашивает подкатегории по идентификатору категории, к которой относятся ваши подкатегории.

addItem.html

<template name="addItem"> 
    <div class="form-group"> 
       <select class="form-control cat-select" name="category_name"> 
        <option selected> --Category-- </option> 
        {{#each category}} 
         {{> categoryOptions}} 
        {{/each}} 
       </select> 
       </div> 

       <div class="form-group"> 
       <select class="form-control" name="subcategory_name"> 
        <option selected> --Subcategory-- </option> 
        {{#each subcategory}} 
         {{> categoryOptions }} 
        {{/each}} 
       </select> 
       </div> 
    </template> 


<template name="categoryOptions"> 
    <option id="{{ _id }}">{{ name }} </option> 
</template> 

addItem.js

Template.addItem.helpers({ 
    category: function(){ 
     return Category.find({}); 
    }, 
    subcategory: function(){ 
     var id = Session.get('selectedCategory'); 
     return id ? Subcategory.find({parentId: id}) : false; 
    } 
}); 

Template.addItem.events({ 
    'change .cat-select': function(e, t) { 
     //... get the selected option and set a var called carId then set a session var to make it available 
     var catId = $(e.target).val() || false; 
     Session.set('selectedCategory', catId); 
    } 
}); 
+0

спасибо большое .. :) – emilyKim

0

Я решил этот вопрос. И это может быть ссылка на тех, кто имел такую ​​же проблему .. :)

addItem.html 


<template name="allCategory"> 
     <div class="form-group"> 
      <select class="form-control category-selection" name="name_category"> 
       <option selected> --Category-- </option> 
       {{#each category}} 
        {{> downCategory}} 
       {{/each}} 
      </select> 
     </div> 

</template> 

<template name="allSubcategory"> 
      <div class="form-group"> 
      <select class="form-control subcategory-selection" name="name_subcategory"> 
       <option selected> --Subcategory-- </option> 
       {{#each subcategory}} 
        {{> downSubcategory}} 
       {{/each}} 
      </select> 
      </div> 


</template> 


<template name="downCategory"> 
    <option id="{{_id}}"> {{name_category}} </option> 
</template> 

<template name="downSubcategory"> 
    <option id="{{_id}}"> {{nama_subcategory}} </option> 
</template> 

addItem.js

enter code here 

Template.allCategory.helpers({ 
    category: function(){ 
     return Category.find({}); 
    } 
}); 

Template.allCategory.events({ 
    "change .category-selection": function(e, t){ 
     return Session.set("category", $("[name=name_category]").val()); 
    } 
    }); 

Template.allSubcategory.helpers({ 
    subcategory: function(){ 
     return Subcategory.find({ 
      category_id: Session.get('category') 
     }); 
    } 
}); 
Смежные вопросы