php 掌握jquery,完全掌握jquery tmpl模板

之前用模板渲染都是用angular,无意间发现了jquery tmpl这种轻量级,其文档在这里,本文主要为大家带来一篇jquery tmpl模板(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。

官方解释对该插件的说明:将匹配的第一个元素作为模板,render指定的数据,签名如下:

.tmpl([data,][options])

其中参数data的用途很明显:用于render的数据,可以是任意js类型,包括数组和对象。options一般情况下都是选项了,官方指出,此处的options是一个用户自定义的键值对的map,继承自tmplItem数据结构,适用于模板render动作期间。

在这里可以下载到最新的tmpl插件,值的一提的是,官方同时也说明了,tmpl目前是beta版,使用需谨慎..

下面是一个简单的例子

jquery template demo${ID}${Name}

$(function () {

var users = [{ ID: 'hao1', Name: 'Tony' }, { ID: 'hao2', Name: 'Mary hui'}];

$('#myTemplate').tmpl(users).appendTo('#rows');

});

body

{

padding: 10px;

}

table

{

border-collapse: collapse;

}

其效果如下

f62d2c75099b932ab61a6c9e5310ea94.png

定义模板时,推荐的方式为定义使用

做为模板的包装器,但定义方式并不只有这一种,你可以使用

编译缓存模板,在jQuery .tmpl()中,还可以将模板事先编译并缓存起来,然后在合适的时侯再使用,这对于一些数据嵌套是很有用的,如:

HTML:

JavaScript:

{{tmpl 'cached'}}

${ID}${Name}${Group}

$(function () {

var groupUsers = [{ ID: 'hao1', Name: 'Tony', Group: 'Administrators' }, { ID: 'hao2', Name: 'Mary hui', Group: 'Users'}];

$('#compile2').template('cached');

$('#compile1').tmpl(groupUsers).appendTo('#compileRows');

});

其效果如下

407f895756d18894e2f35cd6ecd7af44.png

$.template()方法,将一段Html编译为模板,示例:

JavaScript

var markup = '

${ID}${Name}';

$.template('template', markup);

$.tmpl('template', users).appendTo('#templateRows');

这样就可以将markup中定义的模板应用于templateRows对象。

jQuery .tmpl()的标签,表达式,属性:

${}:从前面的例子来看,这个标签的作用很明显了,相当于是占位符,但是它还有另一种写法{{= field}}如:

{{= ID}}{{= Name}}

必须要注意的是,"="号后必须跟一个空格,不然是没有效果的。

jQuery .tmpl()有两个比较有用的属性:$item、$data:

$item代表当前的模板;$data代表当前的数据。

Html

Javascript

${ID}${$data.Name}${$item.getLangs('; ')}

$(function () {

var userLangs = [{ ID: 'hao1', Name: 'Tony', Langs: ['PHP', 'Python'] }, { ID: 'hao2', Name: 'Mary hui', Langs: ['Java', 'C#']}];

$('#property').tmpl(userLangs, {

getLangs: function (separator) {

return this.data.Langs.join(separator);

}

}).appendTo('#propertyRows');

});

3134538434d9294d8cb0e7815a320265.png

{{each}}这个标签一看就知道是做循环用的了,用法如下:(关键词{{each Array}}、$value、$index)

HTML

Javascript

ID: ${ID};

Name: ${Name};

Langs:

{{each Langs}}

${$index + 1}:${$value}.

{{/each}}

$(function () {

var userLangs = [{ ID: 'hao1', Name: 'Tony', Langs: ['PHP', 'Python'] }, { ID: 'hao2', Name: 'Mary hui', Langs: ['Java', 'C#']}];

$('#eachList').tmpl(userLangs).appendTo('#ul_each');

});

其效果如下

42e9412a842c9b647385539adff5fc40.png

{{each}}还有另一种写法:

Javascript

ID: ${ID};

Name: ${Name};

Langs:

{{each(i,lang) Langs}}

${i+1}:${lang}

{{/each}}

作用和前一种是一样的。

{{if}}和{{else}},这两个标签应该一看就知道作用了,直接上示例:

Javascript

${ID}${Name}

{{if Langs.length > 1}}

${Langs.join('; ')}

{{else}}

${Langs}

{{/if}}

如果Langs数组元素超过1个,则用'; '连接起来,否则就直接显示Langs,效果如下:

27a6d40386c263f719856ce145a7af0c.png

{{html}},直接将对象属性值作为HTML代码替换占位符

$.tmplItem()方法,使用这个方法,可以获取从render出来的元素上重新获取$item,示例:

$('tbody').delegate('tr', 'click', function () {

var item = $.tmplItem(this);

alert(item.data.Name);

});

效果如下:

a94abdf31ecf394f571e50c7c22d1b18.png

相关推荐:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/262138.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniaccess进程无法结束 拒绝访问_嵌入式Linux编程——程序员小白不懂的进程、信号量、并发、互斥...

所有学嵌入式Linux系统的看过来了,以下内容是每一位想学习Linux嵌入式系统想要了解的内容,真的很想要分享给大家!本文分享的内容主要如下几个方面:3.1 并发的原理3.1.1 一个简单的例子3.1.2 竞争条件3.1.3 操作系统关注的问题3.1.…

向mvc controller传递json数组

对于这个主题我没有找到最合适的办法,只是找出了个可以暂时规避问题的方法。发到这里非常希望各位大侠,能给小弟些思路解决此问题。 一开始的需求 本想实现这么一个功能 这里的 var titles [{ title: "ONE",List: ["1", "2&qu…

我常用的在线取色器

颜色明淡 http://www.colorschemer.com/online.html 2.http://tool.cc/color/ 转载于:https://www.cnblogs.com/xiaoliu66007/p/5145955.html

大家好!欢迎来到我的博客!

大家好,欢迎你们来到我的博客,我是你们的好朋友egg,一个疯狂的Java爱好者!这里我会分享一个程序员成长所需的点点滴滴,以Java为主体,从基础到高级知识都会不断的出炉!真心欢迎每一位读者朋友&am…

PHP开发erp账号登陆问题,浪潮ERP软件E系列创建账套时提示“由于登陆不正确、请重新登陆” | 浪潮888博客...

浪潮ERP软件E系列创建账套时提示“由于登陆不正确、请重新登陆”数 据 库: MSDE2000软件版本: E4 软件模块: 账套管理问题描述:E系列创建账套时提示“由于登陆不正确、请重新登陆”产生原因: 无解决方法:首…

python支持向量机回归_Python中支持向量机SVM的使用方法详解

除了在Matlab中使用PRTools工具箱中的svm算法,Python中一样可以使用支持向量机做分类。因为Python中的sklearn库也集成了SVM算法,本文的运行环境是Pycharm。 一、导入sklearn算法包 Scikit-Learn库已经实现了所有基本机器学习的算法,具体使用…

c#正则表达式

到目前为止,许多的编程语言和工具都包含对正则表达式的支持,当然.NET也不例外,.NET基础类库中包含有一个名称空间和一系列可以充分发挥规则表达式威力的类。 正则表达式的知识可能是不少编程人员最烦恼的事儿了。如果你还没有规则表达…

linux awk命令详解

简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处…

python3网络爬虫开发实战豆瓣_大牛程序员教你1天入门Python3 网络爬虫例子

在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材。其实我们可以通过python 来实现这样一个简单的爬虫功能,把我们想要的代码爬取到…

解决了界面上菜单项跑到其它AE控件后面的问题(java)

菜单项竟然跑到后面去了,搞了好多天,终于解决了 只要把这句代码放到main()的最前面就可以了 JPopupMenu.setDefaultLightWeightPopupEnabled(false); 转载于:https://www.cnblogs.com/bluemaplestudio/archive/2010/02/28/1675171.html

There is no public key available for the following key IDs: 3B4FE6ACC0B21F32

Ubuntu报错:There is no public key available for the following key IDs: 3B4FE6ACC0B21F32 解决办法:# apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 3B4FE6ACC0B21F32# apt-get update 转载于:https://blog.51cto.com/yangzhiming/17…

微软工程师测试题——未来

一,选择题(皆为单选): 1,以下谁是二进制思想的最早提出者? a,伏羲;b,姬昌;c,莱布尼茨;d,柏拉图。 答案:A 解释…

matlab利用霍夫,基于matlab的霍夫变换

霍夫变换(限量版)基于matlab的霍夫变换 一、简单介绍Hough变换是图像处理中从图像中识别几何形状的基本方法之一。Hough变换的基本原理在于利用点与线的对偶性,将原始图像空间的给定的曲线通过曲线表达形式变为参数空间的一个点。这样就把原始图像中给定曲线的检测问…

python网站用什么数据库_PyMySQL数据库的使用

前面我们学习了SQLite数据库的相关内容,我们也通过前面的内容学习到了数据库的相关操作,PyMySQL数据库的操作和前面的内容类似,但我们可以通过Navicat直接来查看数据库中的内容,实现数据可视化,前面我们已经完成了下载…

宏与内联(inline)的区别(转载)

先转载下人家总结的宏和普通函数调用的区别:(1)、宏只做简单的字符串替换,函数是参数传递,所以必然有参数类型检查(支持各种类型,而不是只有字符串)。(2)、宏不经计算而直接替换参数,函数调用则是将参数表达式求值再传…

C++_系列自学课程_第_12_课_结构体

1 #include <iostream>2 #include <string>3 4 using namespace std;5 6 struct CDAccount7 {8 double balance; //余额9 double rate; //利息10 int term; //存期11 };12 13 struct Date14 {15 int year;16 int month;17 int…

PHP盈亏问题,小升初数学必考经典应用题—盈亏问题!(附经典例题分析)

这种题目中往往有两种分配方案&#xff0c;每种分配方案的结果会出现多(盈)或少(亏)的情况&#xff0c;通常把这类问题&#xff0c;叫做盈亏问题(也叫做盈不足问题)。解答这类问题时&#xff0c;应该先将两种分配方案进行比较&#xff0c;求出由于每份数的变化所引起的余数的变…

javascript php 之间传递 中文 避免乱码

在javascript代码中用encodeURIComponent()函数处理中文字符串&#xff0c; JS代码&#xff1a; <mce:script type”text/javascript”><!-- string encodeURIComponent(string); location.href index.php?keyword’string; // --></mce:script> PHP代码…

web 服务器 内存 影响_高性能服务器架构思路「不仅是思路」

在服务器端程序开发领域&#xff0c;性能问题一直是备受关注的重点。业界有大量的框架、组件、类库都是以性能为卖点而广为人知。然而&#xff0c;服务器端程序在性能问题上应该有何种基本思路&#xff0c;这个却很少被这些项目的文档提及。本文正式希望介绍服务器端解决性能问…

JavaScript函数 this调用规则

不是我翻译的&#xff0c;但是觉得不错&#xff0c;为了分享&#xff0c;只好... JavaScript函数调用规则一 (1)全局函数调用&#xff1a; function makeArray( arg1, arg2 ){ return [this , arg1 , arg2 ]; } 这是一个最常用的定义函数方式。相信学习JavaScript的人对它…