详解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 相关文章推荐
用jQuery简化JavaScript开发分析
Feb 19 Javascript
jquery 应用代码 方便的排序功能
Feb 06 Javascript
JS.getTextContent(element,preformatted)使用介绍
Sep 21 Javascript
JavaScript中判断整字类型最简洁的实现方法
Nov 08 Javascript
JS 循环li添加点击事件 (闭包的应用)
Dec 10 Javascript
利用Bootstrap实现表格复选框checkbox全选
Dec 21 Javascript
AngularJS表单验证功能分析
May 26 Javascript
详解webpack 热更新优化
Sep 13 Javascript
jQuery实现获取当前鼠标位置并输出功能示例
Jan 05 jQuery
解决layui中onchange失效以及form动态渲染失效的问题
Sep 27 Javascript
Vue-cli assets SubDirectory及PublicPath区别详解
Aug 18 Javascript
浅谈Vue开发人员的7个最好的VSCode扩展
Jan 20 Vue.js
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
CodeIgniter控制器之业务逻辑实例分析
2016/01/20 PHP
PHP迭代器和迭代的实现与使用方法分析
2018/04/19 PHP
Laravel实现短信注册的示例代码
2018/05/29 PHP
laravel 判断查询数据库返回值的例子
2019/10/11 PHP
extJs 文本框后面加上说明文字+下拉列表选中值后触发事件
2009/11/27 Javascript
Jquery中&quot;$(document).ready(function(){ })&quot;函数的使用详解
2013/12/30 Javascript
JavaScript-RegExp对象只能使用一次问题解决方法
2014/06/23 Javascript
php读取sqlite数据库入门实例代码
2014/06/25 Javascript
Javascript遍历Html Table示例(包括内容和属性值)
2014/07/08 Javascript
浅谈javascript中的instanceof和typeof
2015/02/27 Javascript
JavaScript动态加载样式表的方法
2015/03/21 Javascript
JavaScript用select实现日期控件
2015/07/17 Javascript
JavaScript数组去重的几种方法效率测试
2016/10/23 Javascript
Javascript 普通函数和构造函数的区别
2016/11/05 Javascript
jquery ajaxfileupload异步上传插件使用详解
2017/02/08 Javascript
Vue.js鼠标悬浮更换图片功能
2017/05/17 Javascript
JS设置随机出现2个数字的实例代码
2017/07/19 Javascript
bootstrap多层模态框滚动条消失的问题
2017/07/21 Javascript
Vue2.0 给Tab标签页和页面切换过渡添加样式的方法
2018/03/13 Javascript
react高阶组件添加和删除props
2019/04/26 Javascript
vue从一个页面跳转到另一个页面并携带参数的解决方法
2019/08/12 Javascript
JavaScript中的类型检查
2020/02/03 Javascript
Python中的高级数据结构详解
2015/03/27 Python
举例讲解Python面向对象编程中类的继承
2016/06/17 Python
用tensorflow构建线性回归模型的示例代码
2018/03/05 Python
Pandas实现数据类型转换的一些小技巧汇总
2018/05/07 Python
python操作excel的包(openpyxl、xlsxwriter)
2018/06/11 Python
tensorflow更改变量的值实例
2018/07/30 Python
Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】
2018/12/11 Python
pyqt5 QProgressBar清空进度条的实例
2019/06/21 Python
python 协程 gevent原理与用法分析
2019/11/22 Python
python图形用户接口实例详解
2019/12/16 Python
HTML5 文件上传下载的实例代码
2017/07/03 HTML / CSS
Jack Rogers官网:美国经典的女性鞋靴品牌
2019/09/04 全球购物
优秀员工评语
2014/02/10 职场文书
应届生求职信范文
2014/06/30 职场文书