EJS中循环语句中如何使用template?
How to use template in the loop statement in EJS?
我正在制作一个基于 Express 的 Node JS 项目,它通过使用 EJS 循环打印出一组给定数组中的特定元素数组。
app.get("/:animal", function(req,res) {
var animal = req.params.animal;
var cats = [
{ name : "Mittens", age : 7},
{ name : "Kitty", age : 11},
{ name : "Smoogy", age : 3}
];
var dogs = [
{ name : "Rusty", age : 14},
{ name : "Matt" , agee : 7},
{ name : "Holly" , age : 9}
]
res.render("abc.ejs", {animal : animal, cats : cats, dogs : dogs});
这是我的 2 个数组,我必须根据 animal 参数的值打印出其中的任何一个。我想在不为 EJS 文件中的猫和狗分别编写 forEach 循环的情况下执行此操作,而是想根据 animal 参数的值进行打印。怎么做?
我尝试使用嵌套的 <% %> 标签但没有用
将2个数组合二为一
var animals=cats.push(...dogs)
res.render("abc.ejs", {animal , animals });
我建议使用 javascript 中的对象来处理您的情况,如下所述
在你的路由文件中,不需要扩展名 ejs
router.get('/:animal', function(req, res) {
var animal = req.params.animal;
var cats = [ { name: 'Mittens', age: 7 }, { name: 'Kitty', age: 11 }, { name: 'Smoogy', age: 3 } ];
var dogs = [ { name: 'Rusty', age: 14 }, { name: 'Matt', agee: 7 }, { name: 'Holly', age: 9 } ];
var map = { cats: cats, dogs: dogs };
res.render('abc', { animals: map[animal] });
});
ejs查看文件如下:
<table>
<tbody>
<% animals.forEach(function(animal) { %>
<tr>
<td><%= animal.name %></td>
<td><%= animal.age %></td>
</tr>
<% }); %>
</tbody>
</table>
然后点击端点,可以根据您的端口和主机进行更改
http://localhost:3000/dogs
我正在制作一个基于 Express 的 Node JS 项目,它通过使用 EJS 循环打印出一组给定数组中的特定元素数组。
app.get("/:animal", function(req,res) {
var animal = req.params.animal;
var cats = [
{ name : "Mittens", age : 7},
{ name : "Kitty", age : 11},
{ name : "Smoogy", age : 3}
];
var dogs = [
{ name : "Rusty", age : 14},
{ name : "Matt" , agee : 7},
{ name : "Holly" , age : 9}
]
res.render("abc.ejs", {animal : animal, cats : cats, dogs : dogs});
这是我的 2 个数组,我必须根据 animal 参数的值打印出其中的任何一个。我想在不为 EJS 文件中的猫和狗分别编写 forEach 循环的情况下执行此操作,而是想根据 animal 参数的值进行打印。怎么做? 我尝试使用嵌套的 <% %> 标签但没有用
将2个数组合二为一
var animals=cats.push(...dogs)
res.render("abc.ejs", {animal , animals });
我建议使用 javascript 中的对象来处理您的情况,如下所述
在你的路由文件中,不需要扩展名 ejs
router.get('/:animal', function(req, res) {
var animal = req.params.animal;
var cats = [ { name: 'Mittens', age: 7 }, { name: 'Kitty', age: 11 }, { name: 'Smoogy', age: 3 } ];
var dogs = [ { name: 'Rusty', age: 14 }, { name: 'Matt', agee: 7 }, { name: 'Holly', age: 9 } ];
var map = { cats: cats, dogs: dogs };
res.render('abc', { animals: map[animal] });
});
ejs查看文件如下:
<table>
<tbody>
<% animals.forEach(function(animal) { %>
<tr>
<td><%= animal.name %></td>
<td><%= animal.age %></td>
</tr>
<% }); %>
</tbody>
</table>
然后点击端点,可以根据您的端口和主机进行更改 http://localhost:3000/dogs