JQ项目中如何使用Handlebars简化模版

本文介绍了前端模板引擎Handlebars.js的安装方法,包括通过npm和cdn引入。接着详细阐述了如何使用Handlebars编译HTML模板,并展示了基于jQuery ajax获取模板及数据渲染的示例。此外,还讲解了Handlebars的`#with`助手指令以及如何注册自定义助手函数`if_eq`和`if_gt`。文章最后给出了自定义助手的使用方法,用于条件判断和循环渲染。
摘要由CSDN通过智能技术生成

一 安装

首先使用npm install handlebars进行安装,使用const Handlebars = require(“handlebars”);进行引入。
或者使用cdn直接引入

<script src="https://cdn.bootcdn.net/ajax/libs/handlebars.js/4.7.7/handlebars.amd.min.js"></script>

二 使用

可以基于jQuery ajax的封装获得html模版,例如

    Rose.ajax.getHtml("../../../tpl/group/cusManagerInfo.tpl",function(html,statuz){
        if(statuz){
            //接口成功,html为获得的html模版
            var template = Handlebars.compile(html);
            //将html模版插入class="cusManagerInfo"元素中
            //data为你需要插入模版中的数据
            $(".cusManagerInfo").html(template(data));
        }
    });

创建对应tpl文件,下面简单介绍日常写法

//with 助手代码注入到对象的属性中,使你可以访问其属性
{{#with person}}
   {{firstname}} {{lastname}}
{{/with}}

重点:通过调用 Handlebars.registerHelper 方法自定义助手,例如

//助手代码将收到一个 options 参数
//options.fn接收一个上下文参数并返回一个字符串
//options.hash可以更轻松地接受可变数量的参数
Handlebars.registerHelper('if_eq', function(context, options) {
  if (context == options.hash.compare)
    return options.fn(this);
  return options.inverse(this);
});
Handlebars.registerHelper('if_gt', function(context, options) {
  if (context > options.hash.compare)
    return options.fn(this);
  return options.inverse(this);
});

使用方法如下

//如果applyList的长度大于0,则循环applyList
//此时代码助手中options.hash为{compare:0,class:'top'}
{{#if_gt applyList.length compare=0 class="top"}}
	{{#each applyList}}
		<div id="applyId_{{applyId}}" >{{applyId}}</div>
		//如果applyList[i].isShowAble等于0的话,则不显示
	    <div class="input-group" {{#if_eq isShowAble compare=0}}style="display: none;"{{/if_eq}}>是否显示</div>
	{{/each}}
{{/if_gt}}

更多例子参考handlebars官网:官网地址

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值