读书笔记:视图和模板,改用Handlerbars做演示案例
2013-04-27 23:03
344 查看
handlerbar的下载地址:http://handlebarsjs.com/
<html> <head> <script type="text/javascript" src="handlerbar.js"></script> <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script> <script type="text/javascript"> //首先创建一个数据类 var User=function(name){ this.name=name; }; //创建存储数据的空间 User.records=[]; //创建绑定函数,即把绑定事件与函数成对形式存入回调函数数组 User.bind=function(ev,callback){ var calls=this._callbacks||(this._callbacks={}); (this._callbacks[ev]||(this._callbacks[ev]=[])).push(callback); } //创建触发函数,即要遍历回调函数数组,把所有这个事件的回调函数,触发. User.trigger=function(ev){ var list,calls,i,l; if(!(calls=this._callbacks)) return this; if(!(list=this._callbacks[ev])) return this; jQuery.each(list,function(){this()}) }; //创建一个对象, User.create=function(name){ //向数据空间中,存入一个对象 this.records.push(new this(name)); //触发change事件 this.trigger("change"); }; jQuery(function($){ //handlerbar模板,首先拿到模板 var source = $("#my-template").html(); //把模板解析 var template = Handlebars.compile(source); //绑定一个change事件和函数 User.bind("change",function(){ console.log(User.records); //根据模板,传入User类,从而获取完整html代码 var html = template(User); $("#userName").html(''); $("#userName").append(html); }); $("button").click(function(){ var val=$(this).html(); User.records=[]; User.create(val); }); /*自定义函数*/ Handlebars.registerHelper('StrForce', function(str) { if(str=='员外'){ return str+"好厉害"; }else{ return str+"好漂亮"; } }); }); </script> <!--这里的模板可以形成一个js文件,多个地方调用--> <script id="my-template" type="text/x-handlebars-template"> {{#each records}} <li>{{StrForce this.name}}</li> {{/each}} </script> </head> <body> <button>员外</button> <button>丫鬟</button> <ul id="userName"></ul> </body> </html>
相关文章推荐
- 【深入PHP 面向对象】读书笔记(二十一) - 企业模式(六) - 模板视图和视图助手
- 航空业10大新决议+农业大学学习案例思维导图模板
- express3.x_02之使用视图模板(能实现列表的遍历,不用写for循环)
- kohana中模板以及视图中数据传送
- Thinkphp5学习(25)视图和模板
- 安卓案例:Volley用法演示
- Linux服务器开发之:chmod()函数,chmod命令,以及文件屏蔽umask命令,程序修改umask,详细介绍+案例演示
- SQL Server ->> 性能调优案例之 -- 包含递归查询的视图导致整个查询语句性能下降
- 案例报告模板(雷东老师)
- 微信模板消息最简单案例
- 微信小程序-视图模板
- 【微信小程序】事件交互案例演示
- iOS开发九宫格布局案例:自动布局、字典转模型运用、id和instancetype区别、xib重复视图运用及与nib关系
- 视图模板
- Velocity模板项目使用案例
- 《Head First设计模式》 读书笔记09 模板方法模式 The Template Method Pattern
- ThinkPHP 3.2.2 视图模板中使用字符串截取函数
- 文档、视图、框架窗口、文档模板之间的相互关系【转】
- 【iOS开发-51】案例学习:动画新写法、删除子视图、视图顺序、延迟方法、按钮多功能用法及icon图标和启动页设置
- springmvc 配置多视图,返回jsp,velocity,freeMarker,tiles(模板)等等