有這麼一個需求,在一個table中,tr是經過each取值,取出的值要與table標題相對應,如何實現?例如:ide
<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>
若是在JS中,咱們能夠經過list[key]的方式取值,可是handlebars好像不支持這種方式,不知道是否是我本身沒整明白this
總之資料了找了半天,也沒有找到合適的解決方案,因而乎,本身寫吧,很簡單。spa
Handlebars.registerHelper("getValueByKeyFromList", function(list, key, options){
if(list && key && list[key]){
return list[key];
}
return;
});
應用到上面table中就是code
{{#each 內容集合,值舉例[{name:'蘇軾',sex:'男'},{name:'李清照',sex:'女'}...]}} 此時我想獲得這樣的數據,與標題想對應,該如何作呢? <tr> {{#each 標題集合,值舉例[name,sex...]}} <td>{{getValueByKeyFromList ../this this}}</td> ../this 意爲上一層集合的當前值 this 意爲當前集合的當前值 {{/each}} </tr> {{/each}}
解決。blog