JavaScript模板引擎学习分享
2015-06-12 20:44
661 查看
为了将数据库中的一组记录转换成HTML输出到界面上,大家都采用哪些做法呢?
在WebForm时代我们经常使用datagrid、repeater,当MVC问世后我们开始直接在视图上编写C#循环语句,而现在我更喜欢使用JavaScript模板引擎来生成HTML。因为这种做法的最大好处是实现了前后端代码的解耦,前端开发人员也无需了解太多的C#知识。
用法与示例:
第一步,在页面中引入JavaScript模板引擎:
第二步,准备HTML模板:
第三步,准备数据与输出HTML:
备注:classList对象是需要后端开发人员输出的,在MVC中我们可以直接使用ViewBag对象将后端变量输出到JavaScript代码中。
效果预览:
![](http://images0.cnblogs.com/blog2015/79382/201506/121945442388017.jpg)
[b]其它模板引擎介绍:[/b]Underscore.js
[b]优点总结:[/b]
1、前端人员可以更加自由的对HTML结构进行更改,不再依赖后台开发。
2、模板语法支持if等JavaScript语法,用法简单,减小了代码复杂度。
3、HTML代码结构清晰,可阅读性强。
[b][b]本文DEMO:[/b][/b]下载地址
在WebForm时代我们经常使用datagrid、repeater,当MVC问世后我们开始直接在视图上编写C#循环语句,而现在我更喜欢使用JavaScript模板引擎来生成HTML。因为这种做法的最大好处是实现了前后端代码的解耦,前端开发人员也无需了解太多的C#知识。
用法与示例:
第一步,在页面中引入JavaScript模板引擎:
function template(str, data) { var strFunc = "var p=[],print=function(){p.push.apply(p,arguments);};" + "with(obj){p.push('" + str.replace(/[\r\t\n]/g, " ") .replace(/'(?=[^#]*#>)/g, "\t") .split("'").join("\\'") .split("\t").join("'") .replace(/<#=(.+?)#>/g, "',$1,'") .split("<#").join("');") .split("#>").join("p.push('") + "');}return p.join('');"; func = new Function("obj", strFunc); return func(data); }
第二步,准备HTML模板:
<script type="text/html" id="temp_class"> <# for(var i=0;i<datalist.length;i++){ #> <div class="panle"> 课程编号:<#= datalist[i].ClassId #> 课程名称:<#= datalist[i].ClassName #> </div> <# } #> </script>
第三步,准备数据与输出HTML:
function loadPage() { var classList = [ { ClassName: "数据结构", ClassId: "1001", CreateOn: "2015-05-01 08:20:36", CreatedBy: "管理员"}, { ClassName: "线性代数", ClassId: "1003", CreateOn: "2015-05-03 19:21:25", CreatedBy: "管理员"}, { ClassName: "高等数学", ClassId: "1004", CreateOn: "2015-05-03 19:20:39", CreatedBy: "管理员"} ]; var strTempHTML = document.getElementById("temp_class").innerHTML; document.getElementById("class_list").innerHTML = template(strTempHTML, { datalist: classList }); }
备注:classList对象是需要后端开发人员输出的,在MVC中我们可以直接使用ViewBag对象将后端变量输出到JavaScript代码中。
效果预览:
![](http://images0.cnblogs.com/blog2015/79382/201506/121945442388017.jpg)
[b]其它模板引擎介绍:[/b]Underscore.js
[b]优点总结:[/b]
1、前端人员可以更加自由的对HTML结构进行更改,不再依赖后台开发。
2、模板语法支持if等JavaScript语法,用法简单,减小了代码复杂度。
3、HTML代码结构清晰,可阅读性强。
[b][b]本文DEMO:[/b][/b]下载地址
相关文章推荐
- JavaScript 技术概要
- js+canvas实现纸牌游戏
- JS 拦截/捕捉 全局错误 全局Error onerror
- JSON数据解析
- 【JavaScript】单击网页任意一处打开新窗口与关闭窗口
- javascript知识点
- XML数据的三种解析(JSON方式 , DOM方式 , Sax方式)
- 利用JS的D3库实现直方图
- json的解析和序列化
- HTML5音频播放,歌词同步,及视频播放功能(JPlayer、JWPlayer、VideoJS)
- 图片上传时,QQ浏览器会弹出下载弹框的解决方案
- ExtJs4.2的合并单元格
- 采用新的方法解决extjs4.1 grid合并单元格问题
- js里面的属性和方法类型
- Velocity浅析及与Jsp、Freemarker对比
- Javascript中的几种继承方式比较
- HTML5通过js调用手机摄像头
- [每天读书半小时] 2015-6-12 Servlet / JSP
- 201506121154_《JavaScript权威指南(第六版)——垃圾回收机制、列宁认识逻辑方法》(P161-?)
- javascript 编程题目