最近在整理Ext JS的模板和组件,在参考《Ext JS权威指南》,《Ext JS Web应用程序开发指南》,《Ext JS API》等相关书籍后才写下这篇《Ext JS模板与组件基本知识思维导图》,由于篇幅较长,所以必须肢解与各位分享。想要《Ext JS模板与组件基本知识思维导图》原文档的可以与我联系。

组件是Ext JS的基础,模板是Ext JS4的基础,熟悉模板也就了解组件的组织方式,也就为使用组件和构建自定义组件打下基础。

130个组件虽多,但最基本的就是四类:容器、面板、布局、视图。而且在使用中容易混淆其作用,所以我们必须先从整体上掌握模板和组件,后续分化学习他们之间区别和各自作用。

模板

一.模板概述{1.什么是模板(HTML片段,占位符)2.为什么会用到模板(统一的渲染管道)3.Ext JS中模板有哪些,怎么分的?(2种)}

二.Ext.Template

1.Ext.Template主要配置项(disableFormats(中文意思))

2.Ext.Template主要方法(1.newExt.Template\2.append\3.apply\4.applyOut\5.applyTemplate\6.insertAfter\7.insertBefore\8.insertFirst\9.overwrite\10.set\11.addStatics\12.create( ) )

3.Ext.Template怎么使用

1.Ext.Template.append方法及数组形式模板值2.Ext.Template.overwrite方法及JSON对象模板值

3.在模板中使用格式化函数                    4.使用自定义的格式化函数解析多层json对象

三.格式化输出数组(可先跳过此节 参考于ExtJS权威指南和ExtJS的API)

1.Ext.String.(10个)

(1.htmlEncode  2.htmlDecode(解码)   3.urlAppend(hellow?a=1这个?)  4.trim(n. 修剪;整齐)  5.capitalize   6.ellipsis(n. 省略;省略符号) 7.escapeRegex(RegEx n. 正则表达式)

8.toggle(n. 开关,触发器Ext.String.toggle("aaa","abc","相等"))  9.leftPad( Pad n.填补Ext.String.leftPad("12 3",5,"0000")-000012 3) 10.format(Ext.String.format("我,生于{0}年“,1964)-我生于1964年)。

2.Ext.Number(5个)

(1.constrain(约束.constrain(21,10,20))   2.snap(adj. 突然的)     3.toFixed(.toFixed(3.1415926,5));//3.14159)       4.from(值是数字则返回数字,否则返回默认值)        5.randomInt(randomInt(1,100)))

3.Ext.Date

常用属性:defaultFormat

常用方法:1.add(Ext.Date.add(new Date('12/15/2016'), Ext.Date.DAY, -5))     2.between(console.log(Ext.Date.between(date, start, end)); //返回true)

3.format   (Ext.Date.format(date, 'Y年m月d日 H:i:s'); //  2016年12月20日 14:30:00 )

D (使用两位数字显示天数,前导字符为0)  /   j  (不使用两位数字显示天数)   /    M (使用两位数字显示月份,前导字符为0)  /    n  (不使用两位数字显示月份,不加前导字符0)    /     Y  (使用4为数字显示年份)

Y  (使用两位数字显示年份)       /    G  (使用24小时格式显示小时,没有前导字符0)  /  H  (使用24小时格式显示小时,有前导字符0) /  i  (显示分钟,有前导字符0) /      S  (显示秒,有前导字符0)

4.parse (n. 从语法上分析)var input = '2016年10月31日 14:30:00';  var format = 'Y年m月d日 H:i:s';  var date = Ext.Date.parse(input, format, true);  console.log(date);  //Mon Oct 31 2016 14:30:00 GMT+0800 (中国标准时间)

5.getDayOfYear  (var date = new Date('12/15/2016 14:30:00');  console.log(Ext.Date.getDayOfYear(date)); //返回 349  )

6.getDaysInMonth 获取该月所拥有天数 7.getWeekOfYear(返回指定日期中其年份的周数)  8.isLeapYear (返回指定日期中其年份的周数)  9.getFirstDayOfMonth(返回指定日期中其月份第一天是星期几,返回值为0到6中的数字,0便是星期日)

10.getLastDayOfMonth  (返回指定日期中其月份最后一天是星期几,返回0到6中数字,0表示星期日)  11.getFirstDateOfMonth (返回指定日期中返回月份第一天的日期值) 12.getLastDateOfMonth(返回指定日期中返回月份最后一天的日期值)

13.now   (返回当前日期)

4.Ext.util.Format属性(具体看思维导图)

四.超级模板:Ext.XTemplate  (重点来了)

1.为何称其为超级(1.自动填充数组数据2.执行判断语句3.数学运算以及执行实例内的方法4.模板有values,parent,xindex和xcount等四个内建的模板变量,用于特殊处理5.还可根据需要进行自定义操作)

2.Ext.XTemplate方法(XTemplate对象重写了Template对象的apply方法和applyOut方法,其余方法全部继承自Template对象。)

3.Ext.XTemplate怎么用?

1.整个依旧和Template一样写在Ext.onReady(function(){...});中。2.模板的定义现在是var   abc(自定义名称)=new   Ext.XTemplate();下。

3.自动填充数组和作用域切换 //Xtemplate可进行自动数组填充,改善了Template的单一填充性,这里所用到的方法是<tpl for="">....</tpl>

4.使用基本的条件逻辑运算   //和数组遍历一样依旧在<tpl>标签下进行,标签tpl和操作符if,可用来执行条件判断,以决定模板的哪一部分需要被渲染出来。

5.在子模板中访问父对象     //在标签中提取值的时候采用parent.父类变量

6.数组索引和简单运算支持   //当处理数组时特殊符号{#}表当前数组索引加1,从1开始而不是0,元素可转换成数字也支持基本+-*/运算

7.自动渲染简单数组         //对于只包含简单数组的可以使用{.}符号进行循环输出。

8.在模板中执行任意代码     // XTemplate模板中任何包含在{[...]}中间的代码都在模板的作用域范围内执行,它支持一些特殊变量

values       //当前作用域下的值对象,通过切换子模板的作用域可以改变其中的值。

parent       //父模板的值对象

xindex      // 循环模板时的索引(从1开始)

xcount     //模板循环时的总循环次数

9.使用模板成员函数

五.模板的优势(1.实现数据与数据表现的分离2.模板可以一次定义多次使用 3.将表现层相关的逻辑封装在模板内部)

《Ext JS模板与组件基本知识框架图----模板》的更多相关文章

  1. 简单物联网:外网访问内网路由器下树莓派Flask服务器

    最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...

  2. 利用ssh反向代理以及autossh实现从外网连接内网服务器

    前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...

  3. 外网访问内网Docker容器

    外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...

  4. 外网访问内网SpringBoot

    外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...

  5. 外网访问内网Elasticsearch WEB

    外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...

  6. 怎样从外网访问内网Rails

    外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...

  7. 怎样从外网访问内网Memcached数据库

    外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...

  8. 怎样从外网访问内网CouchDB数据库

    外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...

  9. 怎样从外网访问内网DB2数据库

    外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...

  10. 怎样从外网访问内网OpenLDAP数据库

    外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...

随机推荐

  1. django开发个人简易Blog—nginx+uwsgin+django1.6+mysql 部署到CentOS6.5

    前面说完了此项目的创建及数据模型设计的过程.如果未看过,可以到这里查看,并且项目源码已经放大到github上,可以去这里下载. 代码也已经部署到sina sea上,地址为http://fengzhen ...

  2. 用.NET MVC实现长轮询,与jQuery.AJAX即时双向通信

    两周前用长轮询做了一个Chat,并移植到了Azure,还写了篇博客http://www.cnblogs.com/indream/p/3187540.html,让大家帮忙测试. 首先感谢300位注册用户 ...

  3. WCF:传输EntityFramework 实体类的POCO 代理

    WCF传输EntityFramework 实体类的POCO 代理 Windows Communication Foundation (WCF) 不能对代理进行直接序列化或反序列化,因为 DataCon ...

  4. 《Entity Framework 6 Recipes》中文翻译系列 (21) -----第四章 ASP.NET MVC中使用实体框架之在页面中创建查询和使用ASP.NET URL路由过虑

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 4.2. 构建一个搜索查询 搜索数据是几乎所有应用的一个基本功能.它一般是动态的,因 ...

  5. LINQ系列:Linq to Object排序操作符

    LINQ排序操作符包括:OrderBy.OrderByDescending.ThenBy.ThenByDescending及Reverse. 1. OrderBy 1>. 原型定义 public ...

  6. Minor【 PHP框架】2.第一个应用与请求的生命周期

    框架Github地址:github.com/Orlion/Minor (如果觉得还不错给个star哦(^-^)V) 框架作者: Orlion 知乎:https://www.zhihu.com/peop ...

  7. ASP.NET Core 中的依赖注入 [共7篇]

    一.控制反转(IoC) ASP.NET Core在启动以及后续针对每个请求的处理过程中的各个环节都需要相应的组件提供相应的服务,为了方便对这些组件进行定制,ASP.NET通过定义接口的方式对它们进行了 ...

  8. 将 instance 连接到 vlan100- 每天5分钟玩转 OpenStack(95)

    上一节我们创建了 vlan100,今天将部署两个 instance 到 vlan 并验证其连通性. 同时我们也将讨论底层网络结构的变化. launch 新的 instance "cirros ...

  9. 安装Ubuntu时分区选择

    最近购买来一台二手笔记本.型号是:Dell Latitude D520.回来之后就装上来Ubuntu12.04,开始是安装的UbuntuKylin 13.04.不知道是机器配置不行,还是本身系统有点卡 ...

  10. Hawk: 20分钟无编程抓取大众点评17万数据

    1. 主角出场:Hawk介绍 Hawk是沙漠之鹰开发的一款数据抓取和清洗工具,目前已经在Github开源.详细介绍可参考:http://www.cnblogs.com/buptzym/p/545419 ...