EXTJs學習筆記(知識點總結)

sjf0115發表於2013-05-23


(1)apply()和applyIf()

apply():
將一個物件中的所有屬性值複製到另一個物件中
var a = {name:'xiaosi',age:'23'};
var b = {name:'sjf',age:'24'};
Ext.apply(b,a);
alert("name:"+b.name+"age:"+b.age);
結果:name:xiaosi age:23
applyIf():
將一個物件中的所有屬性值複製到另一個物件中,但是如果某個屬性在目標物件中已經存在,則Ext.applyIf()不會將它覆蓋。
var a = {name:'xiaosi',age:'23',sex:'男'};
var b = {name:'sjf',age:'24'};
Ext.applyIf(b,a);
alert("name:"+b.name+"age:"+b.age +"sex:"+b.sex);
結果:name:xiaosi age:23 sex:男

(2)get(),getDom(),getCmp()區別

getDom方法能夠得到文件中的DOM節點,該方法中包含一個引數,該引數可以是DOM節點的id、DOM節點物件或DOM節點對應的Ext元素(Element)等。 (與getElementById是一個效果)
Ext.onReady(function()
{    
	var e=new Ext.Element("hello");  
	Ext.getDom("hello");  
	Ext.getDom(e);  
	Ext.getDom(e.dom);   
});   

//Html頁面中包含一個id為hello的div,程式碼如下:  
  
<div id="hello">aaa</div> 
在上面的程式碼中,Ext.getDom("hello")、Ext.getDom(e)、Ext.getDom(e.dom)等三個語句返回都是同一個DOM節點物件。
 
get方法中只有一個引數,這個引數是混合引數,可以是DOM節點的id、也可以是一個Element、或者是一個DOM節點物件等。
get方法其實是Ext.Element.get的簡寫形式。 
Ext.onReady(function()
{  
  
  var e=new Ext.Element("hello");   
  Ext.get("hello"));  
  Ext.get(document.getElementById("hello"));  
  Ext.get(e);  
});

//Html頁面中包含一個id為hello的div,程式碼如下:  
<div id="hello">aaa</div> 
Ext.get("hello")、Ext.get(document.getElementById("hello"))、Ext.get(e)等三個方法都可以得到一個與DOM節點hello對應的Ext元素。
getCmp方法用來獲得一個Ext元件,也就是一個已經在頁面中初始化了的Component或其子類的物件,getCmp方法中只有一個引數,也就是元件的id。
getCmp方法其實是Ext.ComponentMgr.get方法的簡寫形式。
Ext.onReady(function()
{    
	var myPanel=new Ext.Panel(
	{  
		id:“myFirstPanel”,  
		title:“舊的標題",    
		renderTo:"hello", 
		width:300,   
		height:200 
	});  
	Ext.getCmp(" myFirstPanel ").setTitle("新的標題");  
}); 

//Html頁面中包含一個id為hello的div,程式碼如下:  
<div id="hello">aaa</div> 
我們使用Ext.getCmp(“myFirstPanel").來得到id為myFirstPanel的元件,並呼叫其setTitle方法來設定該皮膚的標題 

(3)ExtJs Ext.TaskMgr定時重新整理

var taskInternal = 1000;
//定時重新整理
var Task = 
{
	run:function()
	{
		//自己定義的一個資料來源
		/*CouponConfirmStore.reload(
		{ 
			params : 
			{
				start : currentPage,
				limit : pageSize
			}
		});*/
	},
	interval:taskInternal,
	scopt:this
}
Ext.TaskMgr.start(Task);



相關文章