`
limuquan
  • 浏览: 100534 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

EXT核心API详解

阅读更多
Ext类
addBehaviors( Object obj ) : void
对选择的元素 应用事件侦听器,事件名以@附加在结尾

例如:
复制内容到剪贴板代码:
addBehaviors({
   // id=foo下所有的a标签加入click事件
   '#foo a@click' : function(e, t){
       // do something
   },
   // 用,分隔多个选择器
   '#foo a, #bar span.some-class@mouseover' : function(){
       // do something
   }
});
apply( Object obj, Object config, Object defaults ) : Object
从config拷贝所有的属性到obj,如果有defaults参数,也将拷贝其属性到obj

applyIf( Object obj, Object config ) : Object
从config拷贝所有属性至obj(如果obj未定义相应属性)

decode(Object obj) : String
编码一个对象/数组或其它值为一个json格式字符串(支持对象,数组,日期,字符串)

destroy( Mixed arg1, Mixed (optional), Mixed (optional) ) : void
尝试去移除每个传入的对象,包括DOM,事件侦听者,并呼叫他们的destroy方法(如果存在)


each( Array/NodeList/Mixed array, Function fn, Object scope ) : void
利用array中的每个元素迭代调用fn.直到fn返回假,调用格式fn.call(scope || array, array, i, array);


encode(String json) : Object
将一个json格式字符串反序列化为对象

escapeRe( String str ) : String
为字符串正则编码将.在*+?^${}()|[]/\字符前加\

extend( Object subclass, Object superclass, [Object overrides] ) : void
从superclass类继承subclass,overrides参数是要重载的方法列表,详见override

fly( String/HTMLElement el, [String named] ) : Element
得到全局共享的一个浮动元素el,如果有多个浮动元素可以使用命名以避免潜在的冲突

get( Mixed el ) : Element
得到一个Element对象,参数可以是id或DOM节点或已存在的Element对象

getBody() : Element
得到当前文档的body对象

getCmp( String id ) : Component
通过id得到一个Component对象


getDoc() : Element
得到当前文档

getDom( Mixed el ) : HTMLElement
通过id或节点或Element对象返回一个DOM节点


id( [Mixed el], [String prefix] ) : String
为对象el生成一个惟一id,如果对象本身已有id,将不会被改变(可以使用前导符prefix)


isEmpty( Mixed value, [Boolean allowBlank] ) : Boolean
判断值是否为空,null, undefined或空字符串将返回真,如果allowBlank定义为真,空字符串将不被视为空

namespace( String namespace1, String namespace2, String etc ) : void
创建一个命名空间,例
复制内容到剪贴板代码:
Ext.namespace('Company', 'Company.data');
Company.Widget = function() { ... }
Company.data.CustomStore = function(config) { ... }
num( Mixed value, Number defaultValue ) : Number
将value转为数值,如果value不是合法的数值类型,将返回defaultValue,其实defaultValue并不一定要求是数值类型,只要你愿意


onReady( Function fn, Object scope, boolean override ) : void
当文档准备好了之后引发fn,发生在page的onload事件之前,并且图片此时都还没有载入,scope定义执有者,override定义scope是否有默认的选择


override( Object origclass, Object overrides ) : void
利用overrides重写origclass的方法,例
复制内容到剪贴板代码:
Ext.override(MyClass, {
    newMethod1: function(){
        // etc.
    },
    newMethod2: function(foo){
        // etc.
    }
});
query( String path, [Node root] ) : Array
通过path,在root中选择节点数组,path可以是以下四种选择器之一

一、[元素选择器] 例:
* 任意节点
E 一个E标签元素
E F 祖先节点为E的F节点
E > F 或 E/F 父节点为E的F节点
E + F 前一个兄弟节点为E的F节点
E ~ F 前面的兄弟节点中有E的F节点

二、[属性选择器] 例:
E[foo] 有foo属性的E节点
E[foo=bar] 有foo属性值为bar的E节点
E[foo^=bar] foo属性以bar开始的E节点
E[foo$=bar] foo属性以bar结尾的E节点
E[foo*=bar] foo属性中有bar字符串的E节点
E[foo%=2]  foo属性能被2整除的E节点
E[foo!=bar] foo属性值不为bar的E节点

三、[伪类选择器] 例:
E:first-child E节点是父节点中第一个子节点
E:last-child E节点是父节点中最后一个子节点
E:nth-child(n) E是父节点中每n个节点
E:nth-child(odd) E是父节点中的奇数节点
E:nth-child(even) E是父节点中的偶数节点
E:only-child E是父节点中惟一的子节点
E:checked checked属性为真的节点
E:first 子孙节点中的第一个E节点
E:last  子孙节点中的最后一个E节点
E:nth(n) 子孙节点中的第n个E节点
E:odd E:nth-child(odd)的简写
E:even E:nth-child(even)的简写
E:contains(foo)  innerHTML属性中含有foo的E节点
E:nodeValue(foo) E节点中包含一个值为foo的文本节点
E:not(S) 不匹配简单选择器S的E节点
E:has(S) 有能匹配简单选择器S的子节点的E节点
E:next(S) 下一个兄弟节匹配简单选择器S的E节点
E:prev(S) 前一个兄弟节匹配简单选择器S的E节点
type( Mixed object ) : String
判断对象类型,如果不是下列值之一将返回false

四、[样式选择器] 例:
E{display=none} display属性值为none的E节点
E{display^=none} display属性值以none开始的E节点
E{display$=none} display属性值以none结束的E节点
E{display*=none} display属性值含有none子字串的E节点
E{display%=2} display属性值能被2整除的E节点
E{display!=none} display属性值不等于none的E节点


select( String/Array selector, [Boolean unique], [HTMLElement/String root] ) :CompositeElementLite/CompositeElement
在root内通过样式选择器或元素数组selector选择元素或元素列表,unique指示是否只选择惟一值

urlDecode( String string, [Boolean overwrite] ) : Object
将url格式字符串string解码为json对象,overwrite参数指示是否不重写已存在的对象,例
Ext.urlDecode("foo=1&bar=2"); //返回 {foo: 1, bar: 2}
Ext.urlDecode("foo=1&bar=2&bar=3&bar=4"); //返回 {foo: 1, bar: 4}.
Ext.urlDecode("foo=1&bar=2&bar=3&bar=4", true); //返回 {foo: 1, bar: [2, 3, 4]}.

urlEncode( Object o ) : String
将json对象编码为url格式字符串,参见urlDecode
    
type( Mixed object ) : String
得到object类型,如果不为以下列举值之一则返回false
string/number/boolean/function/object/array/regexp/element/nodelist/textnode/whitespace



Array类
indexOf( Object o )  Number
object是否在数组中,找不到返回-1;找到返回位置

remove( Object o )  Array
从数组中删除指定的对象object,如果找不到object则数组无变化

Number类
constrain( Number min, Number max )  Number
检查数值是否介于min与max之间, 如果大于max 返回max,如果小于min返回min, 否则返回当前值

String类
escape( String string )  String
将string中的'和\替换为\' \\

format( String string, String value1, String value2 )  String
格式化字符串,例
复制内容到剪贴板代码:
var cls = 'my-class', text = 'Some text';
var s = String.format('div class={0}{1}div', cls, text);
结果 div class=my-classSome textdiv

leftPad( String string, Number size, [String char] )  String
以char将string补齐为size长度,char默认定义空格

toggle( String value, String other )  String
交换值,如果当前值等于value,则被赋值other,反之等于value,例
复制内容到剪贴板代码:
sort = sort.toggle('ASC', 'DESC');
trim()  String
去除开头或结尾多余的空格


Date类
Date.parseDate( String input, String format )  Date
将字符串string依指定的格式format转换为时间,其中格式定义详见format方法

复制内容到剪贴板代码:
dt = Date.parseDate(2006-01-15 32001 PM, Y-m-d his A );
add( String interval, Number value )  Date
增加时间段,String interval在Data类中已定义
Date.MILLI = ms;
Date.SECOND = s;
Date.MINUTE = mi;
Date.HOUR = h;
Date.DAY = d;
Date.MONTH = mo;
Date.YEAR = y;

复制内容到剪贴板代码:
var dt2 = new Date('1012006').add(Date.DAY, -5);
between( Date start, Date end )  Boolean
是否在两个指定的时间之间

clearTime( Boolean clone )  Date
清除时间信息,如果clone为真,则克隆自已并返回新Date,本身的值并不改变,反之则修改自身的值

clone()  Date
克隆

format( String format )  String
格式化时间
代码
含义
范围

d 两位数的日期 01 至 31
D 三字母的星期名 Mon 至 Sun
j 一位数的日期
1 至 31
l 完整的星期名 Sunday 至 Saturday
S 日期的英文顺序刻词尾,两个字符 st, nd, rd or th.
w 一周中的第几天 0 (星期天) 至 6 (星期六)
z 一年中的第几天 0 至 364 (闰年365 )
W ISO-8601 星期数, 周一算一个星期的开始 1 至 53
F 月的完整英文名 January 至 December
m 月,以0前导 01 至 12
M 三字母的简写月名
Jan 至 Dec
n 月 1 至 12
t 本月有多少天 28 至 31
L 是否闰年 10
Y 完整的年份 例 1999 或 2003
y 年的后两位 
例  99 或 03
a 上午下午小写 am 或 pm
A 上午下午大写 AM 或 PM
g 小时12小时制 1 至 12
G 小时24小时制 0 至 23
h 小时12小时制 01 至 12
H 小时24小时制 00 至 23
i 分钟 00 至 59
s 秒
00 至 59
u 毫秒 001 至 999
O 时区,与格林威治标准时间之差 例 +0200
T 时区简写 例 EST, MDT ...
Z 时区间距 -43200 至 50400

其中Date类内置了几种格式
Date.patterns = {
    ISO8601LongY-m-d His,
    ISO8601ShortY-m-d,
    ShortDate njY,
    LongDate l, F d, Y,
    FullDateTime l, F d, Y gis A,
    MonthDay F d,
    ShortTime gi A,
    LongTime gis A,
    SortableDateTime Y-m-dTHis,
    UniversalSortableDateTime Y-m-d HisO,
    YearMonth F, Y
};
当然ISO8601Long和ISO8601Short还是非常招人喜欢的

dt.format(Date.patterns.ISO8601Long);
dt.format('Y-m-d His');

getDayOfYear()  Number
一年中的第几天,从0开始

getDaysInMonth()  Number
本月有多少天,

getElapsed( [Date date] )  Number
当前日期对象与date之间相差的毫秒数

getFirstDateOfMonth()  Date
本月的第一天

getFirstDayOfMonth()  Number
本月第一天是星期几

getGMTOffset()  String
时区信息(见格式定义中的'O')
getFirstDateOfMonth()  Date
本月最后一天

getFirstDayOfMonth()  Number
本月最后一天是星期几

getSuffix()  String
日期后导符(见格式定义中的S)

getTimezone()  String
时区(见T)

getWeekOfYear()  Number
一年中的第几周(见W)

isLeapYear()  Boolean
是否闰年


Function类
createCallback(args...)  Function
创建回叫方法

createDelegate( [Object obj], [Array args], [BooleanNumber appendArgs] )
创建委托
这两个记法除了传参方式不同,看不出有什么差异都是调用method.apply,createCallback可以看作一个简化版的createDelegate
createCallback==return method.apply(window, args);
createDelegate==return method.apply(obj  window, callArgs);
前者参数比较简单,直接传过去了,后者的规则比较复杂点,如果appendArgs为真,args将附加在参数列表之后,如果是数值,args将在参数列表的appendargs位置插入,其它情况下原参将不起作用

复制内容到剪贴板代码:
var fn = func1.createDelegate(scope, [arg1,arg2], true)
fn(a,b,c) === scope.func1(a,b,c,arg1,arg2);
var fn = func1.createDelegate(scope, [arg1,arg2])
fn(a,b,c) === scope.func1(arg1,arg2);
var fn = func1.createDelegate(scope, [arg1,arg2], 1)
fn(a,b,c) === scope.func1(a,arg1,arg2,b,c);
var fn = func1.createCallback(arg1, arg2);
fn() === func1(arg1, arg2)
createCallback  function(args...)


createInterceptor( Function fcn, [Object scope] )  Function
创建阻断方法,如果fcn返回false,原方法将不会被执行

createSequence( Function fcn, [Object scope] )  Function
创建组合方法,执行原方法+fcn

defer( Number millis, [Object obj], [Array args], [BooleanNumber appendArgs] )Number
定时执行,隔millis毫秒后执行原方法
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics