我正在使用Handlebars进行模板化,我正在开发一个Job.js应用程序。我有一个路由,它使用Mongoose从MongoDB获取车站数据并将其传递到Handlebars模板。虽然大部分数据都能正确显示,但我在迭代模板中的数组时遇到了问题。
app.get("/Manager", async (req, res) => {
try {
let stationData = await business.getStation(1001);
console.log("Station Data:", stationData);
console.log("Fuel Details:", stationData.Fuel);
res.render('ManagerPage', {
layout: undefined,
station: stationData
});
} catch (error) {
console.error("Error fetching station data:", error);
res.status(500).send("Internal Server Error");
}
});
字符串
Template:模板
<body>
<h3>Station Details</h3>
<h4>Name: {{station.Name}}</h4>
<h4>Location: {{station.Location}}</h4>
<h4>Manager: {{station.Manager}}</h4>
<h3>Current Fuel Prices</h3>
{{#each station.Fuel}}
<h4>Type: {{this.type}}, Price: {{this.price}}, Remaining: {{this.remaining}}</h4>
{{/each}}
<a href="#">Delivery</a>
<a href="#">Sales</a>
</body>
{
"_id": new ObjectId('654b56af0a2d9b94b4b2c2fa'),
"StationID": 1001,
"Name": 'Woqod',
"Location": 'Duhail',
"Manager": 'Mubarak Al-Kuwari',
"Fuel": [
{ type: 'Premium', price: 1.97, remaining: 100 },
{ type: 'Super', price: 2.01, remaining: 90 }
]
}
的数据
问题:站点的详细信息显示正确,但是燃料的详细信息(在数组中)没有显示在呈现的页面上。我已经确认getStation函数返回的数据包含正确的燃料详细信息。
1条答案
按热度按时间2cmtqfgy1#
您不需要在
each
中使用this
来访问数组Fuel
的属性type
、price
和remaining
。访问
{{#each}}
块中属性的语法是{{type}}
、{{price}}
和{{remaining}}
,不带this
关键字:字符串
来源:How To: Handlebars - Iterate over Arrays with the Each Helper