Ext.XTemplate

1. template 是什么

template 是一个 HTML 片段的模板,它可以进行预编译从来提升性能。

2. Xtemplate

Xtemplate 继承自 template,Xtemplate 支持以下这些功能:

1.数组

1) 如果给定的是个数组,他会自动填充,为数组总每一项重复 template 中的 block。
2) for=“.” ,会从根节点开始重复,for=“record” ,会从 record 节点开始重复。

‘<tpl for="score" >‘ +    ‘<span class="values"></span>‘ +‘</tpl>‘ +
例如,数组score,其中每一个值为values。

2.处理基本的比较运算符

注:大于和小于号要使用html实体字符。

‘<tpl if="price &amp;&amp; discount">‘ +

‘<div class="item-price"><span>{price}</span><span>{discount}</span></div>‘ +

‘</tpl>‘

例如,price && discount 为true时,显示div。

3.支持基本的数学函数

支持+ - * /等

<span class="report-blue-number">{[parseInt((values.rightNum/values.totalNum).toFixed(2) * 100)]}%</span>
<span class="report-blue-number">{[values.totalNum-values.rightNum]}</span>

4.执行有内置模板变量的代码

任何在{[ ]}中的代码都会在 template 的作用域中被执行。生成的结果包括计算表达式和结果,其中代码中有一些特殊的变量如下:

  • out:template 附加的输出数组
  • values:当前作用域下的值,你可以通过改变作用域来改变子 template
  • parent:祖先的作用域
  • xindex:如果是循环 template,index 以 1 开始
  • xcont: 如果是循环 template,会循环 template 的所有的数据。

另外, 在 "{% ... %}"中的代码会被直接插入到 template 生成的代码中, 这些代码块没有输出,它们可以做一些简单的操作,例如,在循环中 break/continue,或者,控制构造函数或方法的调用(要求它们没有输出)。

5 自定义成员函数

自定义函数需要写在 Xtemplate 内部,写在html代码之后,用逗号隔开。

tpl: new Ext.XTemplate(    html code,    {        starClass: function (values) {},        isPassed: function (defeatNum) {}    })

html行间属性调用该函数时使用class={[this.startClass(vaules)]},或者class=“this.startClass(vaules)”都可以。

‘<p class={[this.setPriceCls(values.transaction_date)]}>{[Formatter.toFixed(values.price,1)]}</p>‘
 

6 可以定义一些 API 中没有定义的特殊标记或内置运算符。

3.我遇到的问题及解决方法总结

3.1 我遇到的问题:

1)template 中出现空的 div 效果如图:

‘<div >’,
‘<tpl if = “entryType”=="money_fund"”>’,’<tpl>’,
‘</div >’,

原因:先声明了 DIV,后进行的判断,所以无论 IF 是否为真,都会有一个 DIV 块。
将 DIV 块放入 tpl 中即可,代码如下:

‘<tpl if = “entryType”=="money_fund"”>’,
‘<div >’, ‘</div >’,
’<tpl>’,

效果如下:
2)tpl 中断句时什么时候用“+”,什么时候用“,”
“+”:
没有“[]“时,断句要用“+”,如下:

tpl: ‘<div class="investment-portfolio-buysellpoint-head">‘ +
‘</div>‘,

“,”:
有”[]“时,断句可以用“,”,如下:

itemTpl: [
‘<div>‘,
‘</div>‘
],

3)设置tpl时,需要同时设置data,否则会造成数据不渲染。
4)使用tpl+data形式是,不是使用updateData方法,否则会造成数据不渲染。

3.2 总结:

1)参数的调用:
<tpl>{notifyingAt}</tpl>
其中:notifyingAt 为一个参数
参数可以做简单的四则样式,比如有一个 age 参数,我要算一算他 3 年以后是几岁的话:

<tpl>{age+3}</tpl>

2)函数的调用:

<tpl>{[Ext.Date.format(new Date(),"Y-m-d")]}</tpl>

3)函数中参数的调用:
<tpl>{[Ext.Date.format(value.notifyingAt,"Y-m-d")]}</tpl>

时间: 2024-12-21 11:34:32

Ext.XTemplate的相关文章

[转载]ExtJs4 笔记(4) Ext.XTemplate 模板

作者:李盼(Lipan)出处:[Lipan] (http://www.cnblogs.com/lipan/)版权声明:本文的版权归作者与博客园共有.转载时须注明本文的详细链接,否则作者将保留追究其法律责任. 本篇将涉及到ExtJs中一个重要的概念,模板.话说Razor很神奇,但是我个人不是很喜欢那种html混编C#的方式,仿佛又回到了asp的时 代.ExtJs的模板同样也可以组织生成灵活的html,而且代码和html有效的分离.本文将细细分析ExtJs模板的用法. 行文之前我先把公共的html和

ExtJs4 笔记(4) Ext.XTemplate 模板

ExtJs4 笔记(4) Ext.XTemplate 模板 摘自:http://www.cnblogs.com/lipan/ 本篇将涉及到ExtJs中一个重要的概念,模板.话说Razor很神奇,但是我个人不是很喜欢那种html混编C#的方式,仿佛又回到了asp的时 代.ExtJs的模板同样也可以组织生成灵活的html,而且代码和html有效的分离.本文将细细分析ExtJs模板的用法. 行文之前我先把公共的html和用到的js数据贴在前面,后面的代码都要引用到. [html] 1 2 3 4 5

override Ext.grid.plugin.RowExpander的方法不起作用

Ext版本4.2 覆盖方法: Ext.override(Ext.grid.plugin.RowExpander, {     setCmp: function (grid) {         var me = this,             rowBodyTpl,             features;         console.log('我是盖子..');         me.callParent(arguments);         me.recordsExpanded 

Ext.grid.plugin.RowExpander的简单用法

有时候,我们在grid里渲染数据时,由于某些字段的内容太长,而grid又不会自动出现滚动条,于是溢出的内容后面就会出现省略号, 导致信息展示不完全.如果,这个信息不太重要,展示不完全也无关紧要.可是,有时候,用户需要查看溢出部分的详细内容时,怎么办呢?比如下图中的grid: 因为信息内容太长,导致“消息内容”展示不全,这时候想要查看详细信息怎么办呢? 最简单的解决方法就是利用 Ext.grid.plugin.RowExpander  我们在grid配置项里面添加一个plugins属性.如下图所示

ExtJs 第二章,Ext.form.Basic表单操作

1.认识Ext.form.Panel表单面板         Ext.form.field.CheckBox 复选框 checkboxfield Ext.form.CheckBoxGroup 复选框组 checkboxgroup Ext.form.field.ComboBox 下拉列表框 combo Ext.form.field.Date 日期选择框 datefield Ext.form.field.Display 文本展示组件 displayfield Ext.form.FieldContai

Ext grid中单元格编辑,editor为combobox时用法

{ header: 'TO_PTN_NM', dataIndex: "TO_PTN_NM", sortable: true, renderer: function (v, m, recod, rowindex, colindex) { if (true) { m.style = " background-color: #ccffcc;"; }; return v; }, editor: { //xtype: 'textfield', selectOnFocus: t

【Ext.Net学习笔记】06:Ext.Net GridPanel的用法(GridPanel 折叠/展开行、GridPanel Selection、 可编辑的GridPanel)

GridPanel 折叠/展开行 Ext.Net GridPanel的行支持折叠/展开功能,这个功能个人觉得还说很有用处的,尤其是数据中包含图片等内容的时候. 下面来看看效果: 使用行折叠/展开功能之后,在Ext.Net GridPanel的行头会出现一个展开图标,点击图标以后能够将这一行展开: 使用XTemplate实现行折叠/展开 这是最简单的一种实现,在上一篇文章:[Ext.Net学习笔记]05:Ext.Net GridPanel的用法(包含Filter.Sorter.Grouping.汇

Ext.form.Panel表单面板

1.Ext.form.FormPanel支持的主要表单组件 ExtJS表单组件 说明 Xtype类型 Ext.form.field.CheckBox 复选框 checkboxfield Ext.form.CheckBoxGroup 复选框组 checkboxgroup Ext.form.field.ComboBox 下拉列表框 combo Ext.form.field.Date 日期选择框 datefield Ext.form.field.Display 文本显示组件 displayfield

ext树表+ZeroClipboard复制链接功能

效果图: 其中:前台jsp如下: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE html> <html lang="zh_CN"> <head> <meta http-equiv="Content-Type" content="tex