Handlebars的使用方法及技巧

  • Templates
    使用模板的方法只需引入handlebars库即可使用,通过两个大括号的方式将变量包含起来,对应的数据就会展示到定义好的模板中展示,这块如果碰上数据想解析成html代码时可使用三个大括号展示
<script type="text/template" id="my_tem">
    <div class="demo">
        <h1>{{name}}</h1>
        <p>{{content}}</p>
        <h2>{{food.like1}}</h2>
        {{{dom}}}
    </div>
</script>

对应的JS代码以及数据如下:

var data={
      name:'lx',
        content:'this is my first tml',
        food:{
            "like1":'tomato',
            "like2":'apple'
        },
        dom:"<div>直接解析</div>"
    };
let tpl=$("#my_tem").html();					//获取模板内容
let template=Handlebars.compile(tpl);			//预编译模板
let html=template(data);						//匹配数据
$("body").append(html);						//插入到DOM
  • 循环遍历#each
    each方法如同js中的循环一样,遍历数据然后插入到模板中,each使用方法如下:
<script id="table-template" type="text/template">
     {{#each student}}
       <tr>
         <td>{{addOne @index}}</td>
         <td>ss{{name}}</td>
         <td>{{sex}}</td>
         <td>{{age}}</td>
       </tr>
      {{/each}}
 </script>
 <script type="text/javascript">
 	var data = {
            "student": [
                 {
                     "name": "张三",
                     "sex": "0",
                     "age": 18
                 },
                 {
                     "name": "李四",
                     "sex": "0",
                     "age": 22
                 },
                 {
                     "name": "妞妞",
                     "sex": "1",
                     "age": 19
                 }
             ]
         };
 	let  tpl=$("#table-template").html();
 	let  template=Handlerbars.compile(tpl);
 	let  html=template(data);
	Handlebars.registerHelper("addOne",function(index,options){
         return parseInt(index)+1;
   	});
 	$("body").append(html);
 </script>
  • Helper函数
    在上面的代码中的addOne @index用来实现对table表格的一个序号标记,这块用到了Helpers功能函数,通过registerHelper方法来实现,具体的实现方式如代码可见,在模板中我们通常可以多次使用这个方法来对我们所需要的数据进行一个改变。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值