??? 4年前玩过extjs ,如今重新捡回来,感觉还是有点手生,今天看了一下视频,记录一下。
?
???
Ext.onReady(function(){}) //加载事件 var o = { say : function(){ alert(11111); } } var fn = Ext.Function.alias(o,'say'); fn(); //创建函数别名 Ext.get("myb") //这个能获取页面id为myb的元素 //创建对象的几种方式 1. var win = new Ext.window.Window({ ????width:400, ????height:300, ????title:'uspcat' ???}); 2.var win = Ext.create('Ext.window.Window',{ ?width:400, ?height:300, ?title:'uspcat' }); 3. //先声明,后创建符合面向对象的原则 ??Ext.define("myWin",{ ???extend:'Ext.window.Window', ???width:400, ???height:300, ???title:'uspcat', ???initComponent: function() { ????this.callParent(arguments); ???} ??}); ??var win = Ext.create("ux.myWin",{ ????title:'my win' ???}); //动态加载 ?Ext.Loader.setConfig({ ??enabled:true, ??paths:{ ???myApp:'code/ux' //命名空间,extjs 会动态加载该空间下的控件 ??} ?}); 在code/ux 目录下有个mywin.js 内容如下 ??Ext.define("ux.myWin",{ ???extend:'Ext.window.Window', ???width:400, ???height:300, ???config: { ????? price: 50 ???}, ???newtitle: 'new uspcat', ???mySetTitle:function(){//自定义方法 ????this.title = this.newtitle; ???}, ???title:'uspcat', ???initComponent: function() { //初始化方法 ????this.mySetTitle(); ????this.callParent(arguments); ???} ??}); //如果在某个地方引用到了这个ux.myWin 则会动态加载 mywin.js Ext.get("myb").on("click",function(){ ???var win = Ext.create("ux.myWin",{ ????title:'my win', ????price:600, ????requires:['ux.myWin'] //需要加载的控件 ???}); ??}); //给类的属性加方法 ,注意上面的mywin.js 里面有个 config: { // price: 50 // },属性 这个会自动生成get方法 Ext.get("myb").on("click",function(){ ???var win = Ext.create("ux.myWin",{ ????title:'my win', ????price:600, ????requires:['ux.myWin'] ???}); ???alert(win.getPrice()) ??}); //这个到是挺有用的 //多重继承 Ext.define("say",{ ???cansay:function(){ ????alert("hello"); ???} ??}) ??Ext.define("sing",{ ???sing:function(){ ????alert("sing hello 123"); ???} ??}) ??Ext.define('user',{ ???mixins :{ ????say : 'say', ????sing: 'sing' ???} ??}); ??var u = Ext.create("user",{}); ??u.cansay(); ??u.sing(); //mixins 属性可以达到多重继承的功能