2013-02-20 54 views
0

我想为所有传入编译对象的第一个对象添加_first = true。 对于只有第一个数组的数据和公司,应该添加_first = true。Handlebar each helper

模板

<script id="firsttemp" type="text/x-handlebars-template"> 

     {{#each objects}} 
     <tr> 

     <td class="tableFirstCol"><input type="checkbox" class="check" id="childcheck" /></td> 
     <td class="tableFirstCol"><input type="checkbox" class="star" id="childstar" /></td> 
     <td class="tableFirstCol"><input type="checkbox" class="alarm" id="childalarm" /></td> 
     <td class="tableFirstCol">{{name}}<span>{{name}}</span></td> 

     </tr> 
     {{/each}} 
</script> 

的Json

company = { 
      "name": "IBM", 
      "lastprice": 310.2, 
      "dayschange": 120.1, 
      "dayshigh": 220.9, 
      "volume": 140.3, 
      "52weekhigh": 200.3, 
      "name2": "herohonda", 
      "dataset": [1200,2000,5200], 
      "lastprice2": "1:10pm", 
      "dayschange2": "8%", 
      "dayshigh2": "1.5%", 
      "volume2": "1:10 Pm", 
      "52weekhigh2": "1:10 Pm" 
     }, 
     { 
      "name": "zbHero Honda", 
      "lastprice": 310.2, 
      "dayschange": 220.1, 
      "dayshigh": 220.9, 
      "volume": 140.3, 
      "52weekhigh": 200.3, 
      "name2": "herohonda", 
      "dataset": [3200,3500,5000], 
      "dataset1":[20,+54,1000], 
      "lastprice2": "1:10pm", 
      "dayschange2": "8%", 
      "dayshigh2": "1.5%", 
      "volume2": "1:10 Pm", 
      "52weekhigh2": "1:10 Pm" 
     } 

complation:

$("#row-2-td-1-table").html(template({objects:company})); 
$("#row-2-td-1-table").html(template({objects:data})); 

的结果应该是:

company = { 
      "_first" : true, 
      "name": "IBM", 
      "lastprice": 310.2, 
      "dayschange": 120.1, 
      "dayshigh": 220.9, 
      "volume": 140.3, 
      "52weekhigh": 200.3, 
      "name2": "herohonda", 
      "dataset": [1200,2000,5200], 
      "lastprice2": "1:10pm", 
      "dayschange2": "8%", 
      "dayshigh2": "1.5%", 
      "volume2": "1:10 Pm", 
      "52weekhigh2": "1:10 Pm" 
     }, 
     { 
      "name": "zbHero Honda", 
      "lastprice": 310.2, 
      "dayschange": 220.1, 
      "dayshigh": 220.9, 
      "volume": 140.3, 
      "52weekhigh": 200.3, 
      "name2": "herohonda", 
      "dataset": [3200,3500,5000], 
      "dataset1":[20,+54,1000], 
      "lastprice2": "1:10pm", 
      "dayschange2": "8%", 
      "dayshigh2": "1.5%", 
      "volume2": "1:10 Pm", 
      "52weekhigh2": "1:10 Pm" 
     } 
+0

这里有一些讨论:http://stackoverflow.com/questions/11479094/conditional-on-last-item-in-array-using -handlebars-js-template可能有帮助。 – stusmith 2013-02-20 11:27:55

回答

0

模板:

<tr {{#equal @index}}{{/equal}}> 
</tr> 

Regitry助手:

Handlebars.registerHelper('equal', function(lvalue, options) { 

    if(lvalue==0) { 
     return "id=firstTr-1"; 
    } 
});