Отображение вложенных категорий с помощью EJS — Nodejs

avatar
Emirhan KARADENİZ
1 июля 2021 в 17:42
113
1
0

Прежде всего извините за мой плохой английский. Мой вопрос: я могу создавать неограниченное количество категорий, но не могу публиковать их в своей теме ejs. Например, я хочу перечислить категории в строке меню. Мне это не удалось.

Модули : Express - Mongoose Шаблон: EJS

My sample data is like this

 <div class="col-xs-12">
        <ul class="list-group">

            // the field where I want to list the categories

        </ul>
    </div>

Коды, которые я использовал при создании категорий, следующие.

function createCategory(categories,parentId = null){
const categoryList = []
let category;
if(parentId == null){
    category = categories.filter(cat => cat.parentId == undefined)
}else {
    category = categories.filter(cat => cat.parentId == parentId)
}

for(let cate of category){
    categoryList.push({
        _id : cate._id,
        name : cate.name,
        slug : cate.slug,
        children : createCategory(categories,cate._id)
    })
}
return categoryList

Короче говоря, я хочу сделать следующее: чтобы иметь возможность использовать мои категории в моих меню или списках.

Источник
code
1 июля 2021 в 18:10
0

Не могли бы вы немного перефразировать вопрос? Мне немного трудно вас понять.

Emirhan KARADENİZ
1 июля 2021 в 18:12
0

Честно говоря, я хочу перечислить картинки на картинке с EJS в моем главном меню.

Ответы (1)

avatar
Ismail Hosen
15 марта 2022 в 09:48
0

попробуй это.

function nestedCategories(categories, parentId = null) {
    const categoryList = [];
    let category;
    if (parentId == null) {
        category = categories.filter(cat => cat.parentId == null);
    } else {
        category = categories.filter(cat => String(cat.parentId) == String(parentId));
    }

    for (let cate of category) {
        categoryList.push({
            _id: cate._id,
            name: cate.name,
            slug: cate.slug,
            children: nestedCategories(categories, cate._id)
        })
    }
    return categoryList;
}