如何在 EJS 上循环对象的属性?
How to loop attributes of an object on EJS?
我正在使用 node.js、express、body-parser、ejs、fs 创建某种 api 应用程序。我有服务器 运行,其他一切正常。问题是有一个被解析的对象(JSON 文件),但是在使用我的 index.ejs 模板时我无法访问某些属性:
{
"x":{
"color": "black"
"total": 1
},
"y":{
"color": "red"
"total": 5
}
}
我的 javascrip 文件具有以下循环文件的函数。
var keys = Object.keys(Obj);
for (var i = 0; i< keys.length; i++){
var k = keys[i];
var colorKey = Obj[k].color;
var totalKey = Obj[k].total;
}
var db = keys;
res.render("index", {
db: db
}
然后在我的 index.ejs 上,我有适用于第一个属性(“x”和“y”)但无法访问其余属性的代码。
欢迎来到主页!
<% for (var i = 0; i < db.length; i++) { %> ////This is the for loop that shows "x" and "y"
<h1> We have the variable: <%= db[i] %> </h1>
<h1> The color is: <%= db[i].color %></h1>
<h1> There is <%= db[i].total %> left!</h1>
<% } %>
该页面显示了两个变量,但在颜色和总计方面什么也没显示。有没有办法在 ejs 中循环这些?
我想您实际上不需要预处理。相反,你可以做一个键数组
db = /* the source object */
const keys = Object.keys(db)
res.render("index", { db })
<% for (let i = 0; i < keys.length; i++) { %>
<h1> We have the variable: <%= keys[i] %> </h1>
<h1> The color is: <%= db[keys[i]].color %></h1>
<h1> There is <%= db[keys[i]].total %> left!</h1>
<% } %>
我正在使用 node.js、express、body-parser、ejs、fs 创建某种 api 应用程序。我有服务器 运行,其他一切正常。问题是有一个被解析的对象(JSON 文件),但是在使用我的 index.ejs 模板时我无法访问某些属性:
{
"x":{
"color": "black"
"total": 1
},
"y":{
"color": "red"
"total": 5
}
}
我的 javascrip 文件具有以下循环文件的函数。
var keys = Object.keys(Obj);
for (var i = 0; i< keys.length; i++){
var k = keys[i];
var colorKey = Obj[k].color;
var totalKey = Obj[k].total;
}
var db = keys;
res.render("index", {
db: db
}
然后在我的 index.ejs 上,我有适用于第一个属性(“x”和“y”)但无法访问其余属性的代码。
欢迎来到主页!
<% for (var i = 0; i < db.length; i++) { %> ////This is the for loop that shows "x" and "y"
<h1> We have the variable: <%= db[i] %> </h1>
<h1> The color is: <%= db[i].color %></h1>
<h1> There is <%= db[i].total %> left!</h1>
<% } %>
该页面显示了两个变量,但在颜色和总计方面什么也没显示。有没有办法在 ejs 中循环这些?
我想您实际上不需要预处理。相反,你可以做一个键数组
db = /* the source object */
const keys = Object.keys(db)
res.render("index", { db })
<% for (let i = 0; i < keys.length; i++) { %>
<h1> We have the variable: <%= keys[i] %> </h1>
<h1> The color is: <%= db[keys[i]].color %></h1>
<h1> There is <%= db[keys[i]].total %> left!</h1>
<% } %>