zoukankan      html  css  js  c++  java
  • 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

    解决。

  • 相关阅读:
    jQueryEasyUI
    AJAX
    SWFUpload批量上传插件
    jQuery工具函数
    jQuery之Jcrop
    jQuery插件之jqzoom
    jQuery插件之artDialog
    jQuery插件之ajaxFileUpload
    jQuery插件之Cookie
    jQuery插件之Form
  • 原文地址:https://www.cnblogs.com/fyyszbd/p/6400528.html
Copyright © 2011-2022 走看看