无法在车把模板中打印数组元素

Can't print element of array in handlebars template

我正在尝试将产品列表打印到我的车把视图之一,但它不允许我打印我传入的数组中的一个对象的特定 属性。

store.js:

这是我用来渲染车把视图的内容:

res.render("products.handlebars", { products });

我在它传递到上面的行之前记录了 "products",它是一个对象数组

并在 products.handlebars 文件中:

这将打印整个数组和 products.handlebars 视图中对象的所有内容

{{#each products}}
{{this}}
{{/each}}

但是如果我想像这样打印任何对象的 属性:

{{#each products}}
{{this.title}}
{{/each}}

什么都没有出现,几乎什么都没有。没有错误,没有 'undefined' 什么都没有。

我很确定 {{this.title}} 中的语法是错误的,但我不确定。我在另一个项目中使用了这个确切的代码并且它工作正常。我不知道我在这里做错了什么。

作为参考,我控制台记录了我在 res.render 之前传入的数组,它看起来不错。这是数组元素的样子(这只是第一个元素):

{
title: 'Samsung Galaxy S20 Ultra 1TB',
price: 1999.99,
description: 'Lorem ipsum dolor...',
quantity: 10,
category: 'Mobile',
bestSeller: false,
imgPath: '/public/images/products/galaxys20ultra.png',
}

我明白了。默认情况下,express-handlebars 的最新更新禁用了从对象访问属性。您需要在 app.engine 函数中重新启用它。

https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access