详解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 相关文章推荐
Prototype 学习 工具函数学习($A方法)
Jul 12 Javascript
JS中实现replaceAll的方法(实例代码)
Nov 12 Javascript
Jquery实现自定义tooltip示例代码
Feb 12 Javascript
node.js中的fs.fchownSync方法使用说明
Dec 16 Javascript
jQuery匹配文档链接并添加class的方法
Jun 26 Javascript
基于Css3和JQuery实现打字机效果
Aug 11 Javascript
整理AngularJS框架使用过程当中的一些性能优化要点
Mar 05 Javascript
JavaScript获取当前url根目录(路径)
Jun 17 Javascript
JS伪继承prototype实现方法示例
Jun 20 Javascript
微信小程序静默登录的实现代码
Jan 08 Javascript
详解vue组件之间的通信
Aug 30 Javascript
微信小程序:报错(in promise) MiniProgramError
Oct 30 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网页游戏学习之Xnova(ogame)源码解读(二)
2014/06/23 PHP
CodeIgniter中实现泛域名解析
2014/07/19 PHP
php关闭warning问题的解决方法
2016/05/17 PHP
PHP使用ActiveMQ实现消息队列的方法详解
2019/05/31 PHP
thinkPHP+LayUI 流加载实现功能
2019/09/27 PHP
求得div 下 img的src地址的js代码
2007/02/28 Javascript
JavaScript创建命名空间(namespace)的最简实现
2007/12/11 Javascript
setInterval 和 setTimeout会产生内存溢出
2008/02/15 Javascript
jquery cookie的用法总结
2013/11/18 Javascript
js 自带的 map() 方法全面了解
2016/08/16 Javascript
使用BootStrap实现悬浮窗口的效果
2016/12/13 Javascript
通过修改360抢票的刷新频率和突破8车次限制实现方法
2017/01/04 Javascript
浅谈JavaScript中promise的使用
2017/01/11 Javascript
JS实现含有中文字符串的友好截取功能分析
2017/03/13 Javascript
nodejs处理图片的中间件node-images详解
2017/05/08 NodeJs
jQuery动态添加元素无法触发绑定事件的解决方法分析
2018/01/02 jQuery
swiper 自动图片无限轮播实现代码
2018/05/21 Javascript
小程序瀑布流组件实现翻页与图片懒加载
2020/05/19 Javascript
Python中exit、return、sys.exit()等使用实例和区别
2015/05/28 Python
Python机器学习库scikit-learn安装与基本使用教程
2018/06/25 Python
Python帮你微信头像任意添加装饰别再@微信官方了
2019/09/25 Python
CSS3教程(4):网页边框和网页文字阴影
2009/04/02 HTML / CSS
总结30个CSS3选择器
2017/04/13 HTML / CSS
Pretty You London官网:英国拖鞋和睡衣品牌
2019/05/08 全球购物
Clarks其乐鞋荷兰官网:Clarks荷兰
2019/07/05 全球购物
科颜氏法国官网:Kiehl’s法国
2019/08/20 全球购物
python re模块和正则表达式
2021/03/24 Python
新驾驶员个人自我评价
2014/01/03 职场文书
小学家长会邀请函
2014/01/23 职场文书
小学课外阅读总结
2014/07/09 职场文书
酒店端午节活动方案
2014/08/26 职场文书
工作疏忽检讨书500字
2014/10/26 职场文书
Python3 使用pip安装git并获取Yahoo金融数据的操作
2021/04/08 Python
超外差式晶体管收音机的组装与统调
2021/04/22 无线电
Nginx使用Lua模块实现WAF的原理解析
2021/09/04 Servers
vue3获取当前路由地址
2022/02/18 Vue.js