Handlebars.js嵌套{{#each}}失效求助(基于express-handlebars)
问题原因与解决方法
你的问题出在内层遍历的变量名错误:
你传入的data是二维数组,外层{{#each data}}迭代的每一项本身就是子数组(比如[1,2]),但你模板里写的{{#each inner}}是在查找当前项的inner属性——而子数组根本没有这个属性,所以自然没有内容渲染。
解决方法
方法1:直接遍历当前迭代项(推荐)
把内层遍历的inner换成this,this在当前上下文就代表外层迭代到的子数组:
{{#each data}} <div> {{#each this}} inside - {{this}} {{/each}} </div> {{/each}}
方法2:调整数据格式为对象数组
如果你一定要保留inner作为变量名,可以在后端把数据转换成对象数组的格式:
// 修改后的测试数据 data: [{ inner: [1,2] }, { inner: [3,4] }, { inner: [5,6] }]
这样原模板的{{#each inner}}就能正常遍历每个对象的inner属性了。
内容的提问来源于stack exchange,提问作者Mero
相关产品推荐
相关产品推荐

