[02]EXTJS4.0的新特性
笔记:
1.JS 类声明,和对象的创建
2.原型方法用EXTJS创建一个window
3.利用一个按钮触发window窗体,了解一下EXTJS的事件机制
4.用EXTJS4.0的create来创建window
5.利用define自定义类并且继承(extend)window
//初始化的方法 构造器
initComponent:function(){
this.callParent(arguments);
}
6.requires JS的异步加载
7.config 自动的get和set
8.mixins 类的混合
---------------------------------------------------------------------------------
这个例子主要讲类的私有属性和公有属性
lesson02.html
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>HELLOWORD</title><linkrel="stylesheet"type="text/css"href="../extjs-4.1.0/resources/css/ext-all.css"/><scripttype="text/javascript"src="../extjs-4.1.0/bootstrap.js"></script><scripttype="text/javascript"src="indexDemo.js"></script></head><body></body></html>
indexDemo.js
//类的声明其实就是一个functionfunctionuser(){//java语言的publicthis.Name='uspcat';this.age=26;//var就相当于高级语言中的privatevaremail="yfc@126.com";this.getEmail=function(){returnemail;}}varu=newuser();alert(u.Name);alert(u.email);alert(u.getEmail());varperson={name:'yfc',age:26};alert(person.name+""+person['age']);
------------------------------------------------
这个例子主要讲如何使用创建Ext.window.Window,可以使用show方法显示窗口,
lesson02.html
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>Ext.window.Window</title><linkrel="stylesheet"type="text/css"href="../extjs-4.1.0/resources/css/ext-all.css"/><scripttype="text/javascript"src="../extjs-4.1.0/bootstrap.js"></script><scripttype="text/javascript"src="indexDemo2.js"></script></head><body></body></html>
indexDemo2.js
(function(){Ext.onReady(function(){varwin=newExt.window.Window({width:400,height:300,title:'uspcat'});win.show();});})();
------------------------------------------------------------------
这个例子主要将Extjs如何使用Ext.get(获取指定id的页面元素)和事件
lesson02_02.html
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>Ext.window.Window</title><linkrel="stylesheet"type="text/css"href="../extjs-4.1.0/resources/css/ext-all.css"/><scripttype="text/javascript"src="../extjs-4.1.0/bootstrap.js"></script><scripttype="text/javascript"src="indexDemo2.js"></script></head><body><buttonid="myb">Show</button></body></html>
indexDemo3.js
(function(){Ext.onReady(function(){varwin=newExt.window.Window({width:400,height:300,title:'uspcat',closeAction:false//如果没有设置,关闭之后第二次win.show()将会报elisnullel.addCls.apply(el,arguments);});//1.得到那个按钮的dom对象//2.为按钮对象添加单击的事件//3.单击的时候调用对象win的show方法Ext.get("myb").on("click",function(){win.show();},this);});})();
----------------------------------------------------------------------------------
这个例子主要讲Ext.Function.alias如何创建对象方法的别名
lesson02_03.html
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>别名</title><linkrel="stylesheet"type="text/css"href="../extjs-4.1.0/resources/css/ext-all.css"/><scripttype="text/javascript"src="../extjs-4.1.0/bootstrap.js"></script><scripttype="text/javascript"src="indexDemo4.js"></script></head><body></body></html>
indexDemo4.js
(function(){Ext.onReady(function(){varo={say:function(){alert(111);}}varfn=Ext.Function.alias(o,'say');fn();});})();
------------------------------------------------------------------------------
这个例子主要将如何使用Ext.create创建对象
lesson02_04.html
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>Ext.create</title><linkrel="stylesheet"type="text/css"href="../extjs-4.1.0/resources/css/ext-all.css"/><scripttype="text/javascript"src="../extjs-4.1.0/bootstrap.js"></script><scripttype="text/javascript"src="indexDemo5.js"></script></head><body></body></html>
indexDemo5.js
(function(){Ext.onReady(function(){varwin=Ext.create('Ext.window.Window',{width:400,height:300,title:'uspcat'});win.show();});})();
--------------------------------------------------------------
这个例子主要讲Ext.define方法和initComponent属性,initComponent在创建类的对象的时候最自动调用,相当于java的构造器,另外还讲了callParent方法
lesson02_06.html
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>Ext.create</title><linkrel="stylesheet"type="text/css"href="../extjs-4.1.0/resources/css/ext-all.css"/><scripttype="text/javascript"src="../extjs-4.1.0/bootstrap.js"></script><scripttype="text/javascript"src="indexDemo6.js"></script></head><body></body></html>
indexDemo6.js
(function(){Ext.onReady(function(){Ext.define("myWin",{extend:'Ext.window.Window',width:400,height:300,title:'uspcat',newtitle:'newuspcat',mySetTitle:function(){this.title=this.newtitle;},initComponent:function(){this.mySetTitle();this.callParent(arguments);}});Ext.create('myWin',{title:'mywin'}).show();});})();
initComponent方法会自动调用
----------------------------------------------------------------------------------
这个例子主要讲如何引入js文件
ux\mywin.js
Ext.define("myWin",{extend:'Ext.window.Window',width:400,height:300,title:'uspcat',newtitle:'newuspcat',mySetTitle:function(){this.title=this.newtitle;},initComponent:function(){this.mySetTitle();this.callParent(arguments);}});
lesson02_06.html
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>Ext.create</title><linkrel="stylesheet"type="text/css"href="../extjs-4.1.0/resources/css/ext-all.css"/><scripttype="text/javascript"src="../extjs-4.1.0/bootstrap.js"></script><scripttype="text/javascript"src="indexDemo6.js"></script><scripttype="text/javascript"src="ux/mywin.js"></script></head><body></body></html>
indexDemo6.js
(function(){Ext.onReady(function(){Ext.create('myWin',{title:'mywin'}).show();});})();
--------------------------------------------------------------------------------------
这个例子是需要服务器启动的时候才能正常运行的,有两个地方需要注意:
第一个是
Ext.Loader.setConfig({enabled:true,paths:{myApp:'lessonTwo/ux'//什么位置都没有关系});
另一个是类名,必须是在当前文件夹下的文件下面的js文件才能够动态加载,而且类名必须是当前文件夹下的文件名加上js文件名
indexDemo7.js
(function(){Ext.Loader.setConfig({enabled:true,paths:{myApp:'lessonTwo/ux'//什么位置都没有关系}});Ext.onReady(function(){Ext.create('ux.myWin2',{//在ux/myWin2下的ux.myWin2类title:'mywin',//requires:['myWin']}).show();});)();
lesson02_07.html
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>Ext.create</title><linkrel="stylesheet"type="text/css"href="../extjs-4.1.0/resources/css/ext-all.css"/><scripttype="text/javascript"src="../extjs-4.1.0/bootstrap.js"></script><scripttype="text/javascript"src="indexDemo7.js"></script></head><body></body></html>
ux\myWin2.js
Ext.define("ux.myWin2",{extend:'Ext.window.Window',width:400,height:300,title:'uspcat',newtitle:'newuspcat',mySetTitle:function(){this.title=this.newtitle;},initComponent:function(){this.mySetTitle();this.callParent(arguments);}});
----------------------------------------------------------------------------------
这个例子主要是显示 当点击按钮之后myWin2.js这个js文件是动态加载
lesson02_08.html
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>Ext.create</title><linkrel="stylesheet"type="text/css"href="../extjs-4.1.0/resources/css/ext-all.css"/><scripttype="text/javascript"src="../extjs-4.1.0/bootstrap.js"></script><scripttype="text/javascript"src="indexDemo8.js"></script></head><body><buttonid="myb">Show</button></body></html>
indexDemo8.js
(function(){Ext.Loader.setConfig({enabled:true,paths:{myApp:'lessonTwo/ux'//什么位置都没有关系}});Ext.onReady(function(){Ext.get("myb").on("click",function(){Ext.create('ux.myWin2',{//在ux/myWin2下的ux.myWin2类title:'mywin',//requires:['myWin']}).show();});});)();
ux\myWin2.js
Ext.define("ux.myWin2",{extend:'Ext.window.Window',width:400,height:300,title:'uspcat',newtitle:'newuspcat',mySetTitle:function(){this.title=this.newtitle;},initComponent:function(){this.mySetTitle();this.callParent(arguments);}});
-------------------------------------------------------------------------------------
这个例子主要是讲Ext.define中config属性,配置了之后就会自动有getPropertyName方法了
lesson02_09.html
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>Ext.create</title><linkrel="stylesheet"type="text/css"href="../extjs-4.1.0/resources/css/ext-all.css"/><scripttype="text/javascript"src="../extjs-4.1.0/bootstrap.js"></script><scripttype="text/javascript"src="indexDemo9.js"></script></head><body><buttonid="myb">Show</button></body></html>
indexDemo9.js
(function(){Ext.Loader.setConfig({enabled:true,paths:{myApp:'lessonTwo/ux'//什么位置都没有关系}});Ext.onReady(function(){Ext.get("myb").on("click",function(){varwin=Ext.create('ux.myWin3',{//在ux/myWin2下的ux.myWin2类title:'mywin',price:60});alert(win.getPrice());win.show();});});)();
ux\myWin3.js
Ext.define("ux.myWin3",{extend:'Ext.window.Window',width:400,height:300,config:{price:500},title:'uspcat',newtitle:'newuspcat',mySetTitle:function(){this.title=this.newtitle;},initComponent:function(){this.mySetTitle();this.callParent(arguments);}});
----------------------------------------------------------------------------------
最后一个例子主要是讲Ext.define的mixins属性,其实跟js的实例继承法很类似
lesson02_10.html
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>Ext.create</title><linkrel="stylesheet"type="text/css"href="../extjs-4.1.0/resources/css/ext-all.css"/><scripttype="text/javascript"src="../extjs-4.1.0/bootstrap.js"></script><scripttype="text/javascript"src="indexDemo10.js"></script></head><body></body></html>
indexDemo10.js
(function(){Ext.onReady(function(){Ext.define('say',{cansay:function(){alert("hello");}});Ext.define('sing',{sing:function(){alert('singhello123');}});Ext.define('user',{extend:'sing',//继承只能继承一个类mixins:{say:'say'//这个say类的say对象}});varu=Ext.create('user',{});u.cansay();u.sing();});})();
11
附件:http://down.51cto.com/data/2361712声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。