js模版引擎handlebars.js实用教程——if-判断的基本用法
- <!DOCTYPE html>
- <html>
- <head>
- <META http-equiv=Content-Type content="text/html; charset=utf-8">
- <title>if-判断的基本用法 - by 杨元</title>
- </head>
- <body>
- <h1>if-判断的基本用法</h1>
- <!--基础html框架-->
- <table>
- <thead>
- <tr>
- <th>姓名</th>
- <th>性别</th>
- <th>年龄</th>
- </tr>
- </thead>
- <tbody id="tableList">
- </tbody>
- </table>
- <!--插件引用-->
- <script type="text/javascript" src="script/jquery.js"></script>
- <script type="text/javascript" src="script/handlebars-1.0.0.beta.6.js"></script>
- <!--Handlebars.js模版-->
- <!--Handlebars.js模版放在script标签中,保留了html原有层次结构,模版中要写一些操作语句-->
- <!--id可以用来唯一确定一个模版,type是模版固定的写法-->
- <script id="table-template" type="text/x-handlebars-template">
- {{#each student}}
- {{#if name}}
- <tr>
- <td>{{name}}</td>
- <td>{{sex}}</td>
- <td>{{age}}</td>
- </tr>
- {{/if}}
- {{/each}}
- </script>
- <!--进行数据处理、html构造-->
- <script type="text/javascript">
- $(document).ready(function() {
- //模拟的json对象
- var data = {
- "student": [
- {
- "name": "张三",
- "sex": "0",
- "age": 18
- },
- {
- "sex": "0",
- "age": 22
- },
- {
- "name": "妞妞",
- "sex": "1",
- "age": 18
- }
- ]
- };
- //注册一个Handlebars模版,通过id找到某一个模版,获取模版的html框架
- //$("#table-template").html()是jquery的语法,不懂的童鞋请恶补。。。
- var myTemplate = Handlebars.compile($("#table-template").html());
- //将json对象用刚刚注册的Handlebars模版封装,得到最终的html,插入到基础table中。
- $('#tableList').html(myTemplate(data));
- });
- </script>
- </body>
- </html>
在遍历student时,由于数据缺失,并不是每一个学生都有name属性,我们不想显示没有name属性的学生,这时就需要if来做判断。
{{#if name}}可以用来判断当前上下文中有没有name属性,实际上,它是尝试去读取name属性,如果返回的为undefined、null、""、[]、false任意一个,都会导致最终结果为假。
if还支持多层次读取,例如:{{#if name.xxx}},这样写就假设name属性是一个map,检测name属性中是否包含xxx属性。
js模版引擎handlebars.js实用教程——if-判断的基本用法的更多相关文章
- js模版引擎handlebars.js实用教程
js模版引擎handlebars.js实用教程 阅读本文需要了解基本的Handlebars.js概念,本文并不是Handlebars.js基础教程,而是注重于实际应用,为读者阐述使用过程中可能会遇到的 ...
- js模版引擎handlebars.js实用教程——为什么选择Handlebars.js
返回目录 据小菜了解,对于java开发,涉及到页面展示时,比较主流的有两种解决方案: 1. struts2+vo+el表达式. 这种方式,重点不在于struts2,而是vo和el表达式,其基本思想是: ...
- js模版引擎handlebars.js实用教程——目录
写在开头的话: 阅读本文需要了解基本的Handlebars.js概念,本文并不是Handlebars.js基础教程,而是注重于实际应用,为读者阐述使用过程中可能会遇到的一些问题. 实际上,小菜写这篇文 ...
- js模版引擎handlebars.js实用教程——each-基本循环使用方法
返回目录 <!DOCTYPE html> <html> <head> <META http-equiv=Content-Type content=" ...
- js模版引擎handlebars.js实用教程——each-循环中使用this
返回目录 <!DOCTYPE html> <html> <head> <META http-equiv=Content-Type content=" ...
- js模版引擎handlebars.js实用教程——each嵌套
<!DOCTYPE html> <html> <head> <META http-equiv=Content-Type content="text/ ...
- js模版引擎handlebars.js实用教程——循环中使用索引
<!DOCTYPE html> <html> <head> <META http-equiv=Content-Type content="text/ ...
- js模版引擎handlebars.js实用教程——with-进入到某个属性(进入到某个上下文环境)
返回目录 <!DOCTYPE html> <html> <head> <META http-equiv=Content-Type content=" ...
- js模版引擎handlebars.js实用教程——with-终极this应用
返回目录 <!DOCTYPE html> <html> <head> <META http-equiv=Content-Type content=" ...
随机推荐
- 不支持C++11 decltype的噩耗
前言:因为公司现在使用vs2008,所以很多c++11的新特性还未能使用,导致写了很多冤枉代码. 最初引擎的数学库非常简单,使用起来也不方便,例如: float FastLerp(const floa ...
- 如何使用ajax将json传入后台数据
首先采用jquery内部封装好的方法是比较简单的,我们只需做的就是修改里面的一些配置: 对$.ajax()的解析: $.ajax({ type: "POST", //提交方式 co ...
- 国内及Github优秀开发人员列表
自从入了Android软件开发的行道,解决问题和学习过程中免不了会参考别人的思路,浏览博文和门户网站成了最大的入口.下面这些列表取名为:国内及Github优秀开发人员列表,就是浏览后的成果. 虽然下述 ...
- IQD文件模板以及cs7g.ini信息
COGNOS QUERY STRUCTURE,1,1 DATABASE, cognos TITLE,test BEGIN SQL { select time, city_id, city_name, ...
- 给mysql的root用户
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
- allegro中焊盘的设置
用Cadence的pad designer制作pad的时候会遇到为thermal relief和anti pad设计尺寸的问题 Thermal relief:正规的中文翻译应该叫做防散热PAD.它主要 ...
- Xcode自定义Eclipse中常用的快捷键
转载自http://joeyio.com/2013/07/22/xcode_key_binding_like_eclipse/ Xcode自定义Eclipse中常用的快捷键 22 July 2013 ...
- Unity 通过 www 下载 assetbundle , 在 iOS9 设备无法下载的问题
我们项目是通过 www 下载 Assetbundle 来实现热更新的, 在 iOS 8上一切正常,但在 iOS9 设备上发现无法下载,跟踪调试发现以下错误信息 “App Transport Secur ...
- 表格里使用text-overflow后不能隐藏超出的文本的解决方法
当把text-overflow设为ellipsis时文本溢出内容就能显示为省略标记,而设为clip时就能把文本溢出的部分裁切掉,不过在表格里面使用text-overflow后依旧不能隐藏超 ...
- 看到shape文件可以加载到GOOGLE EARTH上的方法,有空可以试试
引用 Shape文件转为KMZ并在Google Earth中显示 (1)在ArcGIS中加载一个Shape文件,笔者加载的是某个地区的道路(双线道路)图层 (2)在ArcToolbox中,依次展开Co ...