Ext.apply 사용자 정의 Ext 클래스 사용

2994 단어 htmlextF#performance
Ext.applyIf(object,config);

Ext.apply(object,config)

 
두 함수는 모두config의 속성을object에 복사하지만, 만약object에 속성이 있다면, Ext.applyIf(object,config);는 원래 속성을 덮어쓰지 않습니다.
 
 
주의: 전송된 매개 변수가undefined라면,config의 속성은config에 복사되지 않습니다.
 
Ext 구성 요소 클래스를 정의합니다. 보통 기본 속성을 정의합니다. 새로운 속성이 원래 속성을 덮어씁니다.
이전에 우리는 Ext.apply(this, config)를 채택했다.그러나 Ext가 전송된 매개 변수로 하위 클래스를 구성한다는 것은 보장할 수 없습니다.
 
따라서 Ext 클래스를 정의할 때 Ext.apply를 사용하여 전송된 파라미터를 기존 기본 파라미터에 덮어쓸 수 있습니다.
Ext.namespace('com.resoft.performance');
/**
 *  
 *
 * @param {}
 *            config
 */
com.resoft.performance.ChartWindow = function(config) {

	com.resoft.performance.ChartWindow.superclass.constructor.call(this, Ext
					.applyIf(config, {
								maximizable : true,
								width : 200,
								height : 100,
								modal : true,
								collapsible : true,
								renderTo : Ext.getBody(),
								layout : 'border',
								items : {
									region : 'center',
									iconCls : 'panel-grid-icon',
									title : ' ',
									autoScroll : true,
									margins : '0 5 0 5',
									layout : 'fit',
									items : new Ext.TabPanel({
												region : 'center',
												margins : '3 3 3 0',
												activeTab : 0,
												defaults : {
													autoScroll : true
												},
												items : [{
															title : 'Bogus Tab',
															html : 'ffff'
														}, {
															title : 'Another Tab',
															html : 'ffff'
														}, {
															title : 'Closable Tab',
															html : 'efeafegnwrth',
															closable : true
														}]
											})
								}
							}));

}

Ext.extend(com.resoft.performance.ChartWindow, Ext.Window, {
			width : 600,
			height : 400,
			productType : 'gg',
			chartType : 'f'
		})

 
그러나 코드 구조를 호출할 때 매개 변수가 들어오지 않으면 구조할 때의 매개 변수는 비어 있습니다. 즉, Ext.apply(object,config)입니다. 만약object가undefined라면 되돌아오는 것도 undefined입니다.다음 코드는 어떤 item도 표시하지 않습니다.
 
Ext.onReady(function() {
   var s = new com.resoft.performance.ChartWindow();
   s.show();
  });


 
그래서 다음 코드로 바꿀 수 있습니다.
Ext.apply( {.....},config)

이렇게 하면 기본 속성은config에 강제로 덮어쓰고, config가 비어 있으면 기본 속성에 따라 구성됩니다.

좋은 웹페이지 즐겨찾기