Handlebars.js中集合(list)通过中括号的方式取值

2018-06-24 00:58:03来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

有这么一个需求,在一个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

解决。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:关于box-shadow和drop-shadow的显著区别

下一篇:Html Email 邮件html页编写指南