之前用easyui等各類富客戶端的東西來展示表格,如今使用handlebars; ##1. handlebars基礎 handlebar相似於el表達式javascript
<script id="task-table-template" type="text/x-handlebars-template"> {{#if content}} {{#each content}} <div class="col-sm-3 cl-padd" id="punish{{id}}"> <div class="ratio-box"> <div class="ratio-box-dd"> <span class="label label-blue">{{addOne @index}} </span> <span class="text-black jll">{{regionName}} </span> [ {{gt rate 10}} ]() <a class="text-blue-s jll" data-toggle="modal" onclick="modify('{{id}}','{{rate}}')">修改</a> <a class="text-blue-s jll" data-toggle="modal" onclick="deletePunish('{{id}}')">刪除</a> </div> </div> </div> {{/each}} {{/if}} </script> <script> var myTemplate = Handlebars.compile($("#task-table-template").html()); 1 $('#acont').html(myTemplate(data)); 2 </script>
{content:[{"id":"1","rate":"20","regionName":"濟南"},{"id":"1","rate":"20","regionName":"濟南"}]}
{{#if key}} 其餘代碼 {{else}} 其餘代碼 {{/if}}
{{#each key}} <span class="label label-blue">{{@index}} </span> {{each}}
##2.自定義函數html
{{#each key}} <span class="label label-blue">{{addOne @index}} </span> {{each}}
Handlebars.registerHelper("addOne", function(index) { // 返回+1以後的結果 return index + 1; }); <script type="text/javascript" src="static/js/handlebars-v4.0.2.js" charset="utf-8"></script>
{{#each mesList}} {{#compare roletype}} <div class="panel-body"> <span class="text-gery">{{ctime}}</span> <br> <span class="text-time">{{content}}</span> </div> {{else}} <div class="panel-body" style="margin-right: 30px "> <div class="pull-right"><span class="text-gery">{{ctime}}</span> <span class="text-bluue">我</span></div><br><br> <div class="pull-right" >{{content}}</div><br><br> </div> {{/compare}} {{/each}}
這裏的{{#compare value }}至關於{{#if}},註冊的js代碼以下:java
Handlebars.registerHelper("compare", function(v1, options) { if (v1 == 1) { // 知足添加繼續執行 return options.fn(this); } else { // 不知足條件執行{{else}}部分 return options.inverse(this); } });
函數裏的options指的應該是一次加載操做;jquery