Handlebars.js中集合(list)通过中括号的方式取值
有这么一个需求,在一个table中,tr是通过each取值,取出的值要与table标题相对应,如何实现?例如:
<table> <thead> <tr> {{#each 标题集合,值举例[name,sex...]}} {{this}} {{/each}} 得到结果应是 <th>name</th> <th>sex</th> </tr> </thead> <tbody> {{#each 内容集合,值举例[{name:'苏轼',sex:'男'},{name:'李清照',sex:'女'}...]}} 此时我想得到这样的数据,与标题想对应,该如何做呢? <tr> <td>苏轼</td> <td>男</td> </tr> <tr> <td>李清照</td> <td>女</td> </tr> {{/each}} </tbody> </table>View Code
如果在JS中,我们可以通过list[key]的方式取值,但是handlebars好像不支持这种方式,不知道是不是我自己没整明白
总之资料了找了半天,也没有找到合适的解决方案,于是乎,自己写吧,很简单。
Handlebars.registerHelper("getValueByKeyFromList", function(list, key, options){ if(list && key && list[key]){ return list[key]; } return; });View Code
应用到上面table中就是
{{#each 内容集合,值举例[{name:'苏轼',sex:'男'},{name:'李清照',sex:'女'}...]}} 此时我想得到这样的数据,与标题想对应,该如何做呢? <tr> {{#each 标题集合,值举例[name,sex...]}} <td>{{getValueByKeyFromList ../this this}}</td> ../this 意为上一层集合的当前值 this 意为当前集合的当前值 {{/each}} </tr> {{/each}}View Code
解决。
相关推荐
景泽元的编程 2020-06-21
qidu 2020-05-15
jyj00 2019-12-15
lancanfei 2019-06-26
wangzhaotongalex 2015-01-07
83433860 2016-09-26
peierlsfox 2016-07-19
zheglei 2016-01-14
BlowfishKing 2018-06-01
lingxian 2018-06-01
bianhuakairi 2019-05-05
liuxiang 2011-09-03
chengcuotuo 2019-04-07