前言
关键字:农民伯伯,Ext. is,copyTo,flatten,unique,pluck,invoke,format,grid,Array,Function,学习,笔记,总结,技巧
接触ExtJs的时间并不长,走了很多弯路,由于短时间内不会再使用ExtJs,所有通过这系列文章汇总、梳理和补充关于ExtJs的点滴以备忘之,系列文章大部分是收集和整理,小部分自己的心得和补充,着重实践,提供完整代码,: )
系列
1. ExtJs 备忘录(1)—— Form表单(一) [ 控件使用 ]
正文
一、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); //首字母大写三、扩展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的优点请移步至系列文章第一篇评论中我的回答,这里就不要再讨论了 :)
文章参考和推荐
1. 一切皆有可能关于ext的基础系列
2. Google:Ext API 详解
3. Ext研究(1)——关于Function类的一些新方法的使用
4. Ext.template分析
5. 《仔仔细细分析Ext》 Ext对Function类的扩展
结束语
建议多看看源码和源码分析的文章,欢迎交流、补充 :)
REF:
http://www.cnblogs.com/over140/archive/2010/01/20/1651022.html
http://docs.sencha.com/ext-js/3-4/#!/api/Ext.util.Format