`
kaidi0314
  • 浏览: 83437 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

ext常用方法

    博客分类:
  • ext
 
阅读更多
Ext.util.Observable:一个抽象基类,为事件机制的管理提供一个公共接口,如果你希望的类可以有事件,就继承它吧
Ext.apply:如果只传入两个参数,则将C继承D的所有方法属性,如果定义了B则每次都先继承B的方法属性然后再继承D的方法属性,即B是默认继承对象
1、Ext.apply(Object obj, Object config, Object defaults ) : Object
将config中的所有属性复制到obj中,如果配置了defaults,则先将defaults中的属性传入obj,然后再将config中属性传入,一般defaults用于定义一些默认值。
注意:每个参数都必须是对象object,而不能是function或其他。
创建object可以通过new function(){}、new Object()、{}等方法创建。

2、Ext.emptyFn: Function
用于返回一个空函数,便于在程序中创建空函数。Ext.emptyFn返回function(){}

3、Ext.applyIf(Object obj, Object config) : Object
功能如同Ext.apply,但是只把config中存在而obj不存在的属性复制过去。

4、Ext.addBehaviors( Object obj ) : void
为页面中一个或多个元素添加事件
元素使用css规则查找,其中元素与事件用@隔开
Ext.addBehaviors({
//为id为foo的元素下的所有a元素添加click事件
'#foo a@click' : function(e, t){
// do something
},
// 为多个选择器添加相同的事件(mouseover)。在@之前使用逗号分开
'#foo a, #bar span.some-class@mouseover' : function(){
// do something
}
});

5、Ext.id( [Mixed el], [String prefix] ) : String
返回一个唯一的id值。
如果只需要获取一个唯一的id值,则直接调用Ext.id();
如果需要为某个元素设定一个唯一的id值并返回id则调用Ext.id(el),el为元素Id、Dom对象或Ext的Element对象。
如果需要指定特定的前缀,则需要传入第二个参数,如Ext.id(el,”myPrix-”),默认前缀为ext-gen,如默认返回id可能为ext-gen4,指定了前缀后可能返回myPrix-4。

6、Ext.extend( Object subclass, Object superclass, [Object overrides] ) : void
实现对象继承,目前还不太了解具体原理 ???

7、Ext.namespace( String namespace1, String namespace2, String etc ) : void
创建命名空间:
如Ext.namespace("Company","MyNS.mydata","Data.format.string")
然后可以创建如MyNS.mydata.doit=function(){…}的接口
注:命名空间的简易调用:Ext.ns(),在Ext Api中未给出此用法。

8、Ext.urlEncode( Object o ) : String
将一个json对象转换称url参数串,支持通过数组为一个参数设定多个值。
如将{a:1,b:2,c:[1,3,5,7]}转换为a=1&b=2&c=1&c=3&c=5&c=7

9、Ext.urlDecode( String string, [Boolean overwrite] ) : Object
将url参数串转换为json对象,overwrite如果为true,则后面的同名参数值覆盖前面的同名参数值(默认为false即不覆盖而以数组形式返回)。

Ext.urlDecode("a=1&b=2&c=1&c=3&c=5&c=7")
返回的对象内容为{a:1,b:2,c:[1,3,5,7]}
Ext.urlDecode("a=1&b=2&c=1&c=3&c=5&c=7",true)
返回{a:1,b:2,c:7}

10、Ext.each( Array/NodeList/Mixed array, Function fn, Object scope ) : void
遍历array并对每项分别调用fn函数。如果array不是数组则只执行一次。
如果某项fn执行结果返回false(必须是false,undefined无效),遍历退出,后面的array项将不被遍历。
遍历过程中每次为fn传入参数分别为[当前数组项],[当前索引]和[数组array]三个参数。
Scope用于设定fn函数中的this指针。

Ext.each([1,3,5,7],function(v,i,a){
alert("index: "+i+" value: "+v+" array.length:"+a.length)
});

将循环弹出:
index:0 value:1 array.length:4
index:1 value:3 array.length:4
index:2 value:5 array.length:4
index:3 value:7 array.length:4
Ext.each([1,3,5,7],function(v,i,a){
alert("index: "+i+" value: "+v+" array.length:"+a.length);
return v!=5; //到第三项后遍历退出
});


将循环弹出:
index:0 value:1 array.length:4
index:1 value:3 array.length:4
index:2 value:5 array.length:4

11、Ext.combine(arg1,arg2..argn) : Array //该方法在Ext2不推荐再使用
用于实现对数组的合并,如果是字符串则作为只有一项的数组合并。

var a1=[1,3,5],b1=["a","b","c"];var c1="xxyznbde";
Ext.combine(a1,b1,c1) 返回[1,3,5,a,b,c,xxyznbde]

12、Ext. escapeRe( String str ) : String
将属于正则里的特殊字符进行转义。

Ext.escapeRe("(ab)$\sa342{}[dd]")将返回\(ab\)\$sa342\{\}\[dd\]。

13、Ext.callback(cb, scope, args, delay) :void //该方法为Ext的内部方法
调用一个函数或延迟调用一个函数。
Cb:调用的函数。
scope:cb中this指针。
args:传如cb的参数,以数组形式表示。
delay:延迟多少毫秒执行cb。

Ext.callback(function(x,y){alert(x+y)},this,[3,5],1000);将于1秒钟后弹出8,即3+5的结果。

14、Ext.getDom( Mixed el ) : HTMLElement
根据传入的id/dom节点/Ext的Elemenet对象,返回其dom对象。
如alert(Ext.getDom("a").innerHTML);或
alert(Ext.getDom(document.getElementById("a")).innerHTML);
将返回id为a的元素的innerHTML内容。

15、Ext.getDoc()/Ext.getBody() : Ext.Element
分别返回页面的document对象和body对象,返回值为Ext的Element对象,而非Dom对象。

16、Ext.getCmp( String id ) : Ext.Component
根据传入的html元素id返回该元素的组件类型,返回值为Ext的Component对象。
必须保证该id对象的元素是Ext的一个内部组件(通过Ext创建的组件),否则什么都不返回。

17、Ext.num( Mixed value, Number defaultValue ) : Number
验证value是否是一个数字,如果是则直接返回否则返回defaultValue。

alert(Ext.num(5,7))返回5,alert(Ext.num("5",7)) 返回7

18、Ext.destroy( Mixed arg1, Mixed (optional), Mixed (optional) ) : void
销毁创建的Element或组件(Component),即销毁其所有的事件监听,dom节点,并调用对象本身的destory方法(如果存在的话),传入的参数类型为Ext.Element或Ext. Component,可以一次性传入多个对象进行销毁。

Ext.destory(menu,el,Button);会销毁menu,el,Button三个对象。

19、Ext.removeNode(htmlElement el): void //Ext内部方法
删除指定的dom节点。传入参数为dom对象。

Ext.removeNode(document.getElementById("ab"));

20、Ext.type( Mixed object ) : String
返回传入的对象的类型。
包括如下类型:
string,number,boolean,function,object,array,regexp,element,nodelist,textnode,whitespace

Ext.type("ab")返回string
Ext.type(20)返回number
Ext.type([3,5,6])返回array
Ext.type(/reg/)返回regexp
Ext.type(document.body)返回element。

21、Ext.isEmpty( Mixed value, [Boolean allowBlank] ) : Boolean
检查一个值是否为null/undefined或是否是空,如果是则返回true。
如果传入allowBlank为true,则只检查是否为null或undefined。
如:
Ext.isEmpty("a")返回false,
Ext.isEmpty("")返回true,
Ext.isEmpty("",true)返回false,
Ext.isEmpty(null)返回true。



一、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编码,将& <  >  “替换为&amp;&lt;&gt;&quot;
    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)  

      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(){ //实际的带参调用 }
      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,例如:

                        //注意
                        var conn = new Ext.data.Connection();
                        conn.request({
                            url: 'submit.aspx?method=Submit4',
                            //此处与params对应,如果为POST,则服务器端从Request.Form中可以取得到数据,反之从QueryString中取数据
                            method: 'POST',//GET
                            params:form1.form.getValues(),
                            success: function(response, opts) {
                                 MsgInfo(response.responseText);
                            }
                        });
        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");    //注意路径

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics