前言
关键字:农民伯伯,Ext. is,copyTo,flatten,unique,pluck,invoke,format,grid,Array,Function,学习,笔记,总结,技巧
接触ExtJs的时间并不长,走了很多弯路,由于短时间内不会再使用ExtJs,所有通过这系列文章汇总、梳理和补充关于ExtJs的点滴以备忘之,系列文章大部分是收集和整理,小部分自己的心得和补充,着重实践,提供完整代码,: )
系列
1. ExtJs 备忘录(1)—— Form表单(一) [ 控件使用 ]
2. ExtJs 备忘录(2)—— Form表单(二) [ 控件封装 ]
3. ExtJs 备忘录(3)—— Form表单(三) [ 数据验证 ]
4. ExtJs 备忘录(4)—— Form表单(四) [ 数据提交 ]
5. ExtJs 备忘录(5)—— GirdPanl表格(一)[ 基本用法 ]
6. ExtJs 备忘录(6)—— GirdPanl表格(二)[ 搜索分页 ]
7. ExtJs 备忘录(7)—— GirdPanl表格(三)[ 统计|查看、修改单行记录 ]
8. ExtJs 备忘录(8)—— 管理界面搭建和其他部分控件介绍
9. ExtJs 备忘录(9)—— Ext常用属性、方法小结 [系列完]
正文
一、Ext
1.1 Ext.isEmpty(v, allowBlank) //是否为空[链接]
1.2 Ext.isArray(v) //是否为数组集合
1.3 Ext.isPrimitive(v) //是否是基本数据类型String/Number/Boolean
1.4 Ext.isFunction(v) //是否是函数
1.5 Ext.isNumber(v) //是否是数字
1.6 Ext.isString(v) //是否是字符串
1.7 Ext.isBoolean(v) //是否是bool值
1.8 Ext.isIE/isIE6/isIE7/isIE8... //判断浏览器
1.9 Ext.isWindows/isLinux/isMac/isAir //判断平台(操作系统)
1.10 Ext.isDefined //对象是否已经定义
1.11 Ext.id(el,prefix) //返回唯一的id值,el位元素Id,prefix为前缀
1.12 Ext.urlEncode(o, pre) //将JSON数据转换URL参数串,如{a:1,b:2} => a=1&b=2
1.13 Ext.urlDecode(string, overwrite) //将url参数列表转换成json格式数据,overwrite如果为true,则后面的同名参数值覆盖前面的同名参数值(默认为false即不覆盖而以数组形式返回)
1.15 Ext.each(array, fn, scope) //遍历数组,例:Ext.each([1,2,3],function(value,index,a){ //index:索引号,0开始 value:当前值 a:数组引用 });
1.16 Ext.encode(o) //将对象转换成json字符串,详细说明和用法:这里
1.17 Ext.decode(o) //将json字符串转换成对象
[Ext-more.js]
1.18 Ext.combine() //数组合并
1.19 Ext.num(value,defaultValue) //如果是数字,直接返回本身,否则返回默认值,注意"5"这里也会返回默认值的
1.20 Ext.copyTo(dest, source, names) //拷贝source中names属性列表至dest中
1.21 Ext.unique(arr) //剔除数组中重复的元素,让数组每个元素保持唯一
1.22 Ext.clean(arr) //复制数组?!
1.23 Ext.flatten(arr) //将多维数组转换成一维数组
1.24 Ext.min(arr, comp) //查找数组中最小的元素
1.25 Ext.max(arr, comp) //查找数组中最大的元素
1.26 Ext.mean(arr) //计算数组元素平均值(总和除以个数)
1.27 Ext.partition(arr, truth) //根据arr元素的bool值拆分成新的二维数组并返回 例1:Ext.partition([true, false, true, true, false]); // [[true, true, true], [false, false]] 例2:Ext.partition(arr,function(val){ return val == "class1" });
1.28 Ext.invoke(arr, methodName,/*args...*/) //执行arr数组中对象的methodName方法,args为方法的参数,返回执行结果数组
1.29 Ext.pluck(arr, prop) //返回数组中属性名(property name)等于prop的值的新数组 Ext.pluck(arr, "className"); => [arr1.className,arr2.className]
1.30 Ext.zip({Arrays|NodeLists},{Function}) //压缩多个数组为一个数组, Ext.zip([1,2,3],[4,5,6]); // [[1,4],[2,5],[3,6]],支持Function自定义合并
1.31 Ext.type(object) //返回对象的类型:string,number,boolean,function,object,array,regexp,element,nodelist,textnode,whitespace
二、Ext.util.Format
2.1 Ext.util.Format.capitalize(value); //首字母大写
2.2 Ext.util.Format.ellipsis(value, len, word); //从字符串开始处截取len长度显示,超过部分用...表示;word为布尔值,为true时在前面截取的基础上再从' '、'.'、'!'、'?'关键字处截取前面(len),ellipsis("abcde.fghijkl",10,true)返回abcde
2.3 Ext.util.Format.htmlEncode(value); //HTML编码,将& < > “替换为&<>"
2.4 Ext.util.Format.htmlDecode(value); //HTML解码,与上面相反
2.5 Ext.util.Format.trim(value); //截取字符串左右的空格
2.6 Ext.util.Format.substr(value, start, length); //从value指定的start位置开始截取length长度的子串返回
2.7 Ext.util.Format.lowercase(value); //转换大写
2.8 Ext.util.Format.uppercase(value); //转换小写
2.9 Ext.util.Format.stripTags(v); //去除HTML标签:/<\/?[^>]+>/gi
2.10 Ext.util.Format.usMoney(v); //转换到'$'符号的货币形式
2.11 Ext.util.Format.date(v, format); //格式化日期输出,format默认格式"m/d/Y"
2.12 Ext.util.Format.round(value, precision); //四舍五入,precision指精确位数
2.13 Ext.util.Format.number(v, format); //格式化数字显示
2.14 Ext.util.Format.nl2br(value); //将字符串中的'\n'替换成'<br />'
2.15 Ext.util.Format.fileSize(value); //将字节数转成更大的单位KB和MB显示,fileSize(1024) = 1KB
2.16 Ext.util.Format.defaultValue(value, defaultValue); //如果value未定义或为空字符串则返回defaultValue
2.17 Ext.util.Format.stripScripts(v); //去除脚本标签
2.18 Ext.util.Format.undef(value); //如果value未定义,返回空字符串,反之返回value本身
三、扩展JS原有对象
3.1 String
3.1.1 .format(format) //和C#里面是一样的用法
3.1.2 .toggle(value, other) //交换值,如果当前值等于value,则被赋值other
3.2 Array
3.2.1 .indexOf(o) //返回元素o在数组ArrayObject中的位置,找不到返回-1
3.2.2 .remove(o) //从数组ArrayObject删除元素o
3.3 Function
3.3.1 .createInterceptor(fcn, scope) //创建阻断方法,如果fcn返回false,原方法将不会被执行,参见这里
3.3.2 .createCallback(/*args...*/) //创建回调,以无参的函数作为参数,但是现有的方法已经具有了参数,如果直接写上可以用这个来创建一个回调,类似于function(){ //实际的带参调用 } ,见这里1、这里2
3.3.3 .createDelegate(obj, args, appendArgs) //创建委托,与上面相比,自己可以访问obj中的属性和方法,见这里
3.3.4 .defer(millis, obj, args, appendArgs) //定时执行,隔millis毫秒后执行原方法,参见这里
3.3.5 .createSequence(fcn, scope) //Ext-more.js中,创建组合方法,执行原方法+fcn,参见这里
四、 其他
4.1 表单
4.1.1 一次取得表单所有的表单元素key/value集合
form1.form.getValues() //form1为Ext.FormPanel,例如:
form1.form.setValues(values) //form1.form.setValues({id:1,name:'aabbcc'}) 赋值
4.1.2 表单元素取值赋值一次取得
4.1.2.1 form1.form.findField('TextBox').getValue()
4.1.2.2 form1.form.getValues().TextBox
4.1.2.3 form1.form.getFieldValues().TextBox
4.2 切换皮肤
Ext.util.CSS.swapStyleSheet("theme", "resources/css/ext/xtheme-orange.css"); //注意路径
注意:
1. 本系列Ext版本为 3.0.0
2. 最新源代码在系列文章第八篇有下载。
3. 关于ExtJs的优点请移步至系列文章第一篇评论中我的回答,这里就不要再讨论了 :)
文章参考和推荐
2. Google:Ext API 详解
3. Ext研究(1)——关于Function类的一些新方法的使用
5. 《仔仔细细分析Ext》 Ext对Function类的扩展
结束语
建议多看看源码和源码分析的文章,欢迎交流、补充 :)