首页 > 解决方案 > 如何遍历 Handlebar 中的类对象数组?

问题描述

我有一个动物数组:

var animals = [new animal("giraffe", false, 4), new animal("zebra", false, 8), new animal("lion", false, 10), new animal("dog", true, 4), new animal("cat", true, 2)];

我如何将它传递给车把并对其进行迭代?基本上,我想展示所有的动物,用每一种动物,展示它的所有属性。

谢谢明

标签: handlebars.jsexpress-handlebars

解决方案


我自己想通了,为了做我想做的事。我需要去做:

Server.js:

var animals = [new animal("giraffe", false, 4), new animal("zebra", false, 8), new animal("lion", false, 10), new animal("dog", true, 4), new animal("cat", true, 2)];
// Routes:
app.get("/allpets",function(req,res){
res.render("allpets", {pets: animals});
};

app.get("/pets/:id",function(req,res){
var type = req.params.id;
var index = -1
for(var i = 0; i < animals.length; i++){
if(animals[i].type === type){
index = i;
break;
}
res.render("animal", animals[index]);
});

然后,我们需要创建 2 个车把视图。一个叫做 allpets.hbs,另一个叫做 animal.hbs

allpets.hbs:
<ul>
{{#each pets}}
   <li>
       <p>Type: {{type}}</p>
       <p>Pet: {{pet}}</p>
       <p>Fierceness: {{fierceness}}</p>
   </li>
{{/each}}
</ul>
============================================================
animal.hbs:
<ul>
    <p>Type: {{type}}</p>
    <p>Pet: {{pet}}</p>
    <p>Fierceness: {{fierceness}}</p>
</ul>

推荐阅读