详解handlebars+require基本使用方法


Posted in Javascript onDecember 21, 2016

最近在某网站看到了handlebars.js,出于好奇就百度了下这是神马玩意,结果让我很是欢喜,于是就开始自学下,handlebars就几个方法,蛮简单,言归正传!

以下是基本教学逻辑演示,会附完整代码

测试案例就分为3大块,头、主体、尾:

<div id="header"></div>
<div class="contact" id="contact"></div>
<div id="footer"></div>

先来讲讲id="contact"主体有些什么内容,html代码就不贴了,直接看下图:

详解handlebars+require基本使用方法

handlebars的模版代码如下:

<script id="contact-template" type="text/x-handlebars-template">
 <div class="tit">{{transformat info}}</div>
 {{#tit}}
 <span class="one">{{this}}</span> {{/tit}} {{#student}}
 <span class="one">{{@index}}</span><span class="one">{{name}}</span><span class="one">{{sex}}</span><span class="one">{{age}}</span><span class="one">{{sheight}}</span> {{/student}}
 </script>

图片中的‘2016通讯录'用到了handlebars.registerHelper,代码如下:

Handlebars.registerHelper("transformat", function(value) {
 if(value == "通讯录") {
 return new Handlebars.SafeString("<font color='pink'>2016通讯录</font>")
 } else {
 return "old通讯录";
 }
 });

注册一个helper,value是模版传进来的值,相当于jq的function(),new Handlebars.SafeString是为了防止把html标签输出为文本形式,就是jq下html()和text()的区别。

最后通过渲染将模版输出到网页,代码如下:

$('#contact').html(Handlebars.compile($("#contact-template").html())(data));

如果有通用模版,就是一个模版要调用多次,上面的代码也可以这样写,方便调用:

var contact=Handlebars.compile($("#contact-template").html());
$('#contact').html(contact(data));

其中的data就是json数据,为了方便就自定义了:

var data = {
 "info": "通讯录",
 "tit": ["序号", "姓名", "性别", "年龄", "身高"],
 "student": [{
 "name": "张三",
 "sex": "男",
 "age": 18,
 "sheight": "175"
 }, {
 "name": "李四",
 "sex": "男",
 "age": 22,
 "sheight": "180"
 }, {
 "name": "妞妞",
 "sex": "女",
 "age": 18,
 "sheight": "165"
 }, {
 "name": "袁帅",
 "sex": "男",
 "age": 17,
 "sheight": "173"
 }]
 };

最后效果图如下,其实和刚刚那个主体一样,就是有头有尾而已:

详解handlebars+require基本使用方法

到这里其实handlebars的基础知识就讲解完了,已经能满足日常网站的需求,当然handlebars还有其他的一些功能,可以参考中文手册:

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
ImageFlow可鼠标控制图片滚动
Jan 30 Javascript
JS判断不能为空实例代码
Nov 26 Javascript
jquery实现经典的淡入淡出选项卡效果代码
Sep 22 Javascript
谈谈Jquery ajax中success和complete有哪些不同点
Nov 20 Javascript
jQuery UI仿淘宝搜索下拉列表功能
Jan 10 Javascript
koa-router源码学习小结
Sep 07 Javascript
javascript验证form表单数据的案例详解
Mar 25 Javascript
vue中格式化时间过滤器代码实例
Apr 17 Javascript
layui 富文本编辑器和textarea值的相互传递方法
Sep 18 Javascript
vue获取form表单的值示例
Oct 29 Javascript
vue自定义树状结构图的实现方法
Oct 18 Javascript
JS实现购物车基本功能
Nov 08 Javascript
JS实现的驼峰式和连字符式转换功能分析
Dec 21 #Javascript
JS实现的RGB网页颜色在线取色器完整实例
Dec 21 #Javascript
js querySelector() 使用方法
Dec 21 #Javascript
简单实现Vue的observer和watcher
Dec 21 #Javascript
使用BootStrap建立响应式网页——通栏轮播图(carousel)
Dec 21 #Javascript
js实现开启密码大写提示
Dec 21 #Javascript
js实现的在线调色板功能完整实例
Dec 21 #Javascript
You might like
php 日期和时间的处理-郑阿奇(续)
2011/07/04 PHP
PHP curl 并发最佳实践代码分享
2012/09/05 PHP
PHP过滤★等特殊符号的正则
2014/01/27 PHP
ThinkPHP3.1之D方法实例详解
2014/06/20 PHP
CI框架入门示例之数据库取数据完整实现方法
2014/11/05 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
详解php用static方法的原因
2018/09/12 PHP
PHP如何使用cURL实现Get和Post请求
2020/07/11 PHP
利用jQuery 实现GridView异步排序、分页的代码
2010/02/06 Javascript
基于JavaScript实现动态创建表格和增加表格行数
2015/12/20 Javascript
JavaScript闭包实例详解
2016/06/03 Javascript
原生JS获取元素集合的子元素宽度实例
2016/12/14 Javascript
react-native android状态栏的实现
2018/06/15 Javascript
浅析vue中的provide / inject 有什么用处
2019/11/10 Javascript
Python XML RPC服务器端和客户端实例
2014/11/22 Python
在Python中进行自动化单元测试的教程
2015/04/15 Python
Python实现八大排序算法
2016/08/13 Python
彻底理解Python list切片原理
2017/10/27 Python
python脚本生成caffe train_list.txt的方法
2018/04/27 Python
pytorch + visdom CNN处理自建图片数据集的方法
2018/06/04 Python
Python线程同步的实现代码
2018/10/03 Python
python flask解析json数据不完整的解决方法
2019/05/26 Python
快速创建python 虚拟环境
2020/11/28 Python
唤醒头发毛囊的秘密武器:Grow Gorgeous
2016/08/28 全球购物
超30万乐谱下载:Musicnotes.com
2016/09/24 全球购物
Nuts.com:优质散装,批发坚果、干果和巧克力等
2017/03/21 全球购物
布里斯班女装时尚品牌:Adrift
2017/12/28 全球购物
伊莱克斯阿根廷网上商店:Tienda Electrolux
2021/03/08 全球购物
Kipling澳洲官网:购买凯浦林包包
2020/12/17 全球购物
怎样声明接口
2014/09/19 面试题
护理专业毕业生自我鉴定
2013/10/08 职场文书
电视节目策划方案
2014/05/16 职场文书
募捐感谢信
2015/01/22 职场文书
中学生运动会广播稿
2015/08/19 职场文书
vue实现水波涟漪效果的点击反馈指令
2021/05/31 Vue.js
Mybatis-plus在项目中的简单应用
2021/07/01 Java/Android