HTML5从入门到精通——Sencha Touch篇(4)
沉沙 2018-06-20 来源 : 阅读 1071 评论 0

摘要:这次主要介绍Sencha Touch中的XTemplate组件,利用该组件可以方便的构造html代码,很实用。希望阅读本篇文章以后大家有所收获,帮助大家对HTML5的理解更加深入。

这次主要介绍Sencha Touch中的XTemplate组件,利用该组件可以方便的构造html代码,很实用。为了减少不必要的说解,让内容更加简洁清晰,这里直接给出对应代码和代码的相应注释,只要有JavaScript基础的同学就能轻易掌握。

一、利用XTemplate创建HTML代码

var data = {//在这定义需要使用的内容
string_value:'The initial text '
};
var tpl = new Ext.XTemplate(//定义XTemplate模板
'<table>',
'<tr>',
'<td>{string_value}</td>',
'</tr>',
'</table>'
);
var tplHtml = tpl.apply(data);//用apply方法将定义的变量应用到模版中
var myToolbar = Ext.create('Ext.Toolbar',{
docked:'top',
items:[
{
text:'replace template',
handler:function(){//定义替换按钮的事件
var newData = {
string_value:'text after replacement'
};
tpl.overwrite(Ext.get('subPanel'),newData); //overwrite方法
}
}
]
});
var myPanel = Ext.create('Ext.Panel',{
items:[myToolbar,{
id:'subPanel',
stype:'panel',
html:'tplHtml'
}]
});
Ext.Viewport.add(myPanel);

 

二、XTemplate使用数组

var data = ({
name:’张三’,
age:37
},{
name:’李四,
age:28’
});
var tpl = new Ext.XTemplate(
‘<p>用户:’,
‘<tpl for=”.”>’,//.标识读取所有内容
‘<p>{#}.姓名:{name},年名:{age}</p>’,//特殊字符{#}标识编号,自动设置
‘<tpl></p>’
);;
var tplHtml = tpl.apply(data);
var myPanel = Ext.create(‘Ext.Panel’,{
html:tplHtml;
});
Ext.Viewport.add(myPanel)
 对于for的使用还有下面一个例子:
var company = {
name:’ADIDAS’,
employer:[{
name:’Tom’
},{
name:’Jacl’
}]
};
var tpl = new Ext.XTemplate(
‘<p>用户:</br>’,
‘<tpl for=”employer”>’,//这里for遍历的就是employer中的所有变量
‘<p>{#}.姓名:{name}</br>工作单位:{parent.name}’,//parent读取for的父元素
‘</tpl>’
);
 
tpl中还可以加入if和操作符判断,符合条件的显示
‘<tpl for=”.”>’,
‘<tpl if=”age>=30&&age<40”>’,//只显示年龄在30-40之间的
//......

 

三、XTemplate内置变量

values:模板正在访问的数据对象

parent:模板正在访问的成员对象的父对象

xindex:对数组进行遍历时,xindex变量值为当前所显示数据徐昂在数组中的编号

xcount:对数组进行遍历时,xcount变量值为数组中数据的条数

这些都是内置变量,可以直接调用

示例:

‘<tpl for=”hobby”>’,
‘<tpl if=”xindex>1”>’,//如果是第一个则在后面加,符号,起到分割作用
‘,’
‘</tpl>’
‘{.}’//否则加.
‘</tpl>’
‘({values.hobby.length}项)’,//显示一共有多少个爱好
‘<tpl id=”xindex==xcount”,
‘{[index]}人’>’,//当遍历所有员工后,显示一共有多少个人
‘</tpl>’

 

四、在XTemplate中使用自定义函数

var tpl = new Ext.XTemplate(
//这里写tpl模板html内容
//以下是函数内容
{
compiled:true,//设定为以下函数预先编译,就可以在上面直接调用了
isYounger:function(age){
return age<30;
}
}
)

 

本文由职坐标整理并发布,了解更多内容,请关注职坐标WEB前端HTML5/CSS3频道!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程