我在渲染 hbs 中的嵌套对象数组时遇到问题。
我需要在网页上一起显示每个图像及其相应的链接(例如:图像“1”有一个链接“a”)。
下面的代码不起作用,有其他解决方案吗?
服务器.js:
res.render('index.hbs', {
images: [ 1, 2, 3],
links: [a, b, c]
}
);
索引.hbs:
{{#each images}}
{{#each links}}
<img> {{this}} </img> // should display all images
<a> {{this}} </a> // should display all links
{{/each}}
{{/each}}
最佳答案
您可以重新排列输入以仅使用一个数组:
var images = [1, 2, 3];
var links = ['a', 'b', 'c'];
var objects = [];
for (var i = 0; i < images.length; i ++) {
objects[i] = { image: images[i], link: links[i] };
}
var data = { objects: objects };
res.render('index.hbs', data);
然后你可以轻松地迭代它:
{{#each objects}}
<img> {{image}} </img> // should display all images
<a> {{link}} </a> // should display all links
{{/each}}
您可以看到这段代码正在运行 here .
关于javascript - 使用 Handlebars 渲染对象的嵌套数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49102971/