无法在车把模板中打印数组元素
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
我正在尝试将产品列表打印到我的车把视图之一,但它不允许我打印我传入的数组中的一个对象的特定 属性。
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