详解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 相关文章推荐
JavaScript 学习 - 提高篇
Feb 02 Javascript
关于IE、Firefox、Opera页面呈现异同 写脚本很痛苦
Aug 28 Javascript
javascript与webservice的通信实现代码
Dec 25 Javascript
使用Json比用string返回数据更友好,也更面向对象一些
Sep 13 Javascript
js返回前一页刷新本页重载页面
Jul 29 Javascript
js实现表格筛选功能
Jan 18 Javascript
JS获取本周周一,周末及获取任意时间的周一周末功能示例
Feb 09 Javascript
vue-router路由懒加载和权限控制详解
Dec 13 Javascript
JSON基本语法及与JavaScript的异同实例分析
Jan 04 Javascript
jQuery实现雪花飘落效果
Aug 02 jQuery
原生JS实现pc端轮播图效果
Dec 21 Javascript
javascript实现简单留言板案例
Feb 09 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
浅析Apache中RewriteCond规则参数的详细介绍
2013/06/30 PHP
PHP防止post重复提交数据的简单例子
2014/06/07 PHP
PHP中浮点数计算比较及取整不准确的解决方法
2015/01/09 PHP
PHP多态代码实例
2015/06/26 PHP
PHP实现生成模糊图片的方法示例
2017/12/21 PHP
json 入门基础教程 推荐
2009/10/31 Javascript
jqueryMobile使用示例分享
2016/01/12 Javascript
JQuery核心函数是什么及使用方法介绍
2016/05/03 Javascript
Angular使用 ng-img-max 调整浏览器中的图片的示例代码
2017/08/17 Javascript
Vue 组件间的样式冲突污染
2017/08/31 Javascript
vue实现的树形结构加多选框示例
2019/02/02 Javascript
在Layui中实现开关按钮的效果实例
2019/09/29 Javascript
vue实现多级菜单效果
2019/10/19 Javascript
ES6学习笔记之let与const用法实例分析
2020/01/22 Javascript
JavaScript实现网页动态生成表格
2020/11/25 Javascript
[01:36]DOTA2完美大师赛趣味视频之与队友相处的十万个技巧
2017/11/19 DOTA
Python计算一个文件里字数的方法
2015/06/15 Python
基于python中staticmethod和classmethod的区别(详解)
2017/10/24 Python
Python实现基于KNN算法的笔迹识别功能详解
2018/07/09 Python
python调用c++传递数组的实例
2019/02/13 Python
python单线程文件传输的实例(C/S)
2019/02/13 Python
解决python文件双击运行秒退的问题
2019/06/24 Python
python basemap 画出经纬度并标定的实例
2019/07/09 Python
解决Django 在ForeignKey中出现 non-nullable field错误的问题
2019/08/06 Python
如何利用pycharm进行代码更新比较
2020/11/04 Python
苹果美国官方商城:Apple美国
2016/08/24 全球购物
可口可乐唇膏:Lip Smackers
2019/08/27 全球购物
外包公司软件测试工程师
2014/11/01 面试题
英语感恩演讲稿
2014/01/14 职场文书
服装采购员岗位职责
2014/03/15 职场文书
勤俭节约演讲稿
2014/05/08 职场文书
优质服务演讲稿
2014/05/14 职场文书
企业爱岗敬业演讲稿
2014/09/04 职场文书
小学教师师德师风个人整改措施
2014/09/18 职场文书
小学教师自我评价
2015/03/04 职场文书
单位证明范文
2015/06/18 职场文书