Handlebars не показывает элементы объектов внутри массива - PullRequest
0 голосов
/ 16 марта 2020

Код моего проекта работал отлично 5 месяцев go. Теперь я не понимаю, почему руль не показывает данные ни в одном списке. Я проверил бэкэнд, где я получаю массив категорий, и я могу console.log элементы объектов внутри массива. Вот мой код бэкенда:

// shows category list
exports.categoryList = async( req, res )=> {
  var category = await Cat.find()
  var count = 1
  category.map( doc=> doc.count = count++  )
  console.log(category)
  console.log(category[0].name)
  res.render('parents/categoryList', { category })
}

Вывод этих console.log:

[ { subCategories: [],
    brands: [],
    enabled: false,
    discount: null,
    _id: 5e6f2a069894412b749e2fca,
    name: 'abcd',
    created: 2020-03-16T07:25:58.335Z,
    __v: 0 } ]
abcd

В руле я пробовал печатать переменную категории, которую я передал из бэкэнда:

<p>{{category}}</p>

{{#each category}}

count: {{this.count}} <br>
id: {{this._id}}<br>

{{/each}}

Вывод внешнего интерфейса:

{ subCategories: [], brands: [], enabled: false, discount: null, _id: 5e6f2a069894412b749e2fca, name: 'abcd', created: 2020-03-16T07:25:58.335Z, __v: 0 }
count: 1
id: 

Как видите, переменная count, которую я установил в коде бэкэнда, находится не внутри объекта категории, а печатает его при выполнении итерации по массиву категорий. Кто-нибудь может сказать мне, что пошло не так?

1 Ответ

0 голосов
/ 18 марта 2020

.map вернет массив. Если вы сохраните этот массив в какой-либо переменной, я считаю, что он будет работать.

const updArr = category.map( doc=> {
  const newDoc = {}
  newDoc = doc;
  newDoc.count = count++
  return newDoc;
})
console.log(updArr) // check output here
res.render('parents/categoryList', { updArr })

На фронте попытайтесь утешить этот объект. Я думаю, что этот объект является ответом вашего API, что вы получаете его от бэкэнда. А this.count - количество ваших записей.

Спасибо

...