jQuery团队提供了一个模板插件,但非常可惜的是jquery团队放弃对其维护,我们对其方法和语法进行简单简绍
源码官方的网址:
http://api.jquery.com/category/plugins/templates
文档的网址:
http://api.jquery.com/category/plugins/templates
使用该插件必须先引入对应js
//依赖jquery <script src="http://code.jquery.com/jquery.js" type="text/javascript"></script> //tmpl核心js文件 <script src="../../../jquery.tmpl.js" type="text/javascript"></script>
使用的语法:
jQuery.tmpl( template [, data] [, options] ) 返回值为: jQuery
template为模板
data为对应数据
options为其它参数
1.这个语法是我们直接使用模板字符串
例子:
//模板字符串 var tmpl = '<li><a href="${url}">${getName()}</a> {{if $item.showCities}}(${cityJoin()}){{/if}}</li>'; $.tmpl( tmpl, dataObject ).appendTo( "ul" ); //或者 $.tmpl( "<li>${Name}</li>", { "Name" : "John Doe" }).appendTo( "#target" );
2.还可以定义模板完了使用模板
定义模板:
<!--定义模板--> <script id="movieTemplate" type="text/x-jquery-tmpl"> <li> <b>${Name}</b> (${ReleaseYear}) </li> </script>
注意:定义模板使用的script标签,不过type为text/x-jquery-tmpl
3.编译缓存模板
在jQuery .tmpl()中,还可以将模板事先编译并缓存起来,然后在合适的时侯再使用,这对于一些数据嵌套是很有用的
<script id="compile1" type="text/x-jquery-tmpl"> {{tmpl 'cached'}} <tr><td>${ID}</td><td>${Name}</td></tr> </script> <script id="compile2" type="type/x-jquery-tmpl"> <tr><td colspan="2">${Group}</td></tr> </script> <script type="text/javascript"> $(function () { var groupUsers = [{ ID: 'think8848', Name: 'Joseph Chan', Group: 'Administrators' }, { ID: 'aCloud', Name: 'Mary Cheung', Group: 'Users'}]; $('#compile2').template('cached'); $('#compile1').tmpl(groupUsers).appendTo('#compileRows'); }); </script>
使用模板:
<script type="text/javascript"> //模板数据 var movies = [ { Name: "The Red Violin", ReleaseYear: "1998" }, { Name: "Eyes Wide Shut", ReleaseYear: "1999" }, { Name: "The Inheritance", ReleaseYear: "1976" } ]; //movieTemplate为模板id $( "#movieTemplate" ).tmpl( movies ).appendTo( "#movieList" ); </script>
temp插件支持的功能:
${}直接显示数据另一种写法{{= field}},里面如果有html标签也不识别
{{html}}显示数据并识别解析标签
<script id="movieTemplate" type="text/x-jquery-tmpl"> <tr> <td>${Title}</td> <td class="synopsis">${Synopsis}</td> <td class="synopsis">{{html Synopsis}}</td> </tr> </script>
{{if}} 和 {{else}}支持条件判断
<script id="movieTemplate" type="text/x-jquery-tmpl"> <tr> <td>${Title}</td> <td> {{if Languages}} Alternative languages: <em>${Languages}</em>. {{else Subtitles}} Original language only... <br/>Subtitles in <em>${Subtitles}</em>. {{else}} Original version only, without subtitles. {{/if}} </td> </tr> </script>
{{each}}循环
通过$value来取循环对象值例如$value.Name取到循环对象的Name属性值
<script id="movieTemplate" type="text/x-jquery-tmpl"> <tr> <td>${Title}</td> <td>Languages: <em> {{each Languages}} ${$value.Name} and ${$value.value} {{/each}} </em> </td> </tr> </script>
{{each}}还有另一种写法
<script id="each2" type="text/x-jquery-tmpl"> <li>ID: ${ID}; Name: ${Name};<br />Langs: <ul> <STRONG> {{each(i,lang) Langs}} <li>${i + 1}: <label>${lang}. </label></li> {{/each}} </STRONG> </ul> </li> </script>
{{wrap}},包装器,这回不需要指定对哪一个元素使用模板了,直接生成模板的包装器
$.tmplItem()方法,使用这个方法,可以获取从render出来的元素上重新获取$item
$('tbody').delegate('tr', 'click', function () { var item = $.tmplItem(this); alert(item.data.Name); });
$.template(),将一段Html编译为模板
var markup = '<tr><td>${ID}</td><td>${Name}</td></tr>'; $.template('template', markup); $.tmpl('template', users).appendTo('#templateRows');jQuery .tmpl()有两个比较有用的属性:$item、$data:
$item代表当前的模板;$data代表当前的数据
相关推荐
react-templates-plugin, 用于 WebStorm,PhpStorm 和其他Idea系列的反应模板插件 响应模板插件反应模板:用于响应的轻权重模板。 请在这里查看更多的 。针对 WebStorm 。PhpStorm 和其他概念系列IDE的反应模板插件...
jQuery / Zepto 插件模板 jQuery/Zepto 都提供了很好的机制,让用户可以通过编写插件,来扩展功能。 很多人做了很久前端开发,却一直在使用别人的插件,自己没有完整开发过一个插件。其实开发插件不是很难的事情,...
[WordPress][教學][架站]_基本使用#05._頁面Page與Templates模板
zabbix监控系统 Cisco_2960_templates思科交换机模板
eclipse 好用的codeFormatter 和 codeTemplates 模板
C++ Templates: The Complete Guide 详细讲解了C++的模板使用技术和应用
MyEclipse注释模板下载,codetemplates模板
MyEclipse的Hibernate配置的模板。 可以自定义反向工程策略,中的实体类,dao,和hbm文件
codeTemplates.xml,因为项目的需要,发现需要自己编写一个模板,从网上下载的感觉不太适合自己,于是就自己总结拼凑了一个,当然,你也可以下载之后根据你的需求再处理一下,有需要的拿走,不谢
Zabbix 模板 H3C交换机通用模板zbx_export_templates,Zabbix 模板 H3C交换机通用模板:主要监控cup和内存的利用率及各端口的状态,带触发器和图形。
010 Editor Templates 刚刚下载的,全新的010模板文件, 打包下载了
C++ templates 带书签
这个技术就叫jQuery templates and data linking ,这是微软对jQuery做的一个扩展。这种扩展需要jQuery官方的审核,然后才能被包含在jQuery中。据ScottGu的博客上说,此扩展正在等待审核阶段。但是这些功能却是非常...
percona-zabbix-templates模板,导入到zabbix中,对mysql多方面各个指标进行监控。
标准SLA模板,国外的服务级别协议SLA模板
自己定义的注释模板,还算比较好用。用法是直接下载文件,在eclipse或myeclipse里面导入(preferences -- code templates -- comments -- import),使用的快捷键是 alt+shift+j,注释就自动加好了。
eclipse 标准 codetemplates.xml 代码模板,标准、简洁、好用
ASP.NET MVC beta 模板(Templates) 中文修正补丁 完整版 2008年10月15日 发布的 ASP.NET MVC beta ,安装后,在VS2008中模板(Template)没有正确显示。 此补丁解决此问题。方便一起学习ASP.NET MVC 的朋友~ 需要...
AEC Templates and Forms - 包含7份Word Excel格式文件模板.zip
RequireJSJavaScript模板插件,带有Smarty和Twig语言语法的子集。 安装方式 npm install glide-templates --save 配置 需要RequireJS的最小配置。 插件名称是硬编码的,因此,现在RequireJS paths配置变量必须包括...