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

解決。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM