`

Ext.apply 在自定义Ext类时的使用

    博客分类:
  • Ext
阅读更多
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为空,也会按照默认的属性进行构造

 

2
0
分享到:
评论

相关推荐

    ext使用--Panel和iframe联合使用时页面高度的解决方法

    在处理复杂的用户界面时,Panel和IFrame的组合使用是常见的场景。当Panel包含一个IFrame时,可能会遇到页面高度调整的问题,特别是在动态加载内容或者IFrame内页面高度不固定时。本文将深入探讨如何在使用ExtJS时...

    Ext.js核心函数详解.docx

    8. `Ext.util.Format.escapeRegex(String value)`: 此函数用于转义正则表达式中的特殊字符,确保在使用字符串构建正则表达式时不会引发错误。 9. `Ext.callback(Function callback, [Array args], [Object scope])`...

    Ext.js核心函数详解.pdf

    4. **Ext.addBehaviors(Object obj)**:这个函数允许我们使用CSS选择器的方式为页面元素添加事件监听器。例如,可以为ID为"foo"的元素下的所有"a"标签添加点击事件,或者为多个选择器添加相同事件。 5. **Ext.id(...

    Ext Js权威指南(.zip.001

    7.2.10 使用浏览器存储的代理:ext.data.webstorageproxy、ext.data. sessionstorageproxy和ext.data.proxy.localstorage / 314 7.3 读取和格式化数据 / 315 7.3.1 概述 / 315 7.3.2 数据的转换过程:ext.data....

    Ext 实现自定义控件

    在这里,我们创建了一个名为 `myArticleList` 的新组件,它继承自 `Ext.grid.GridPanel`。在 `initComponent` 中,我们创建了一个新的 `JsonStore` 用于存储数据,并设置了其字段和数据源URL。注意,重载 `...

    Ext-window属性

    在支持一次仅显示一个子组件的布局中,如`Ext.layout.Accordion`、`Ext.layout.CardLayout`和`Ext.layout.FitLayout`,这个属性特别有用。 2. **allowDomMove**: 默认值为`true`,表示在组件渲染过程中允许移动DOM...

    Ext.form.FieldSet的用法.pdf

    10. **applyTo**:你可以指定已存在文档中的元素 ID、DOM 节点或类似 DIV 的元素,`Ext.form.FieldSet` 将会使用这些元素作为其基础。使用 `applyTo` 时,不需要调用 `render()` 方法,且 `renderTo` 配置会被忽略。...

    Ext.form.FieldSet的用法.docx

    7. **animCollapse**: 如果设置为`true`,FieldSet在展开和折叠时会带有动画效果,前提是Ext.Fx库可用。 8. **bodyCfg**: 用于定义FieldSet主体部分的DOMHelper配置,可以用来改变body元素的结构或样式,如居中对齐...

    ExtJSWeb应用程序开发指南(第2版)

    6.3.2 Ext.core.DomHelper.applyStyles() 6.3.3 createTemplate() 6.3.4 insertAfter() 6.3.5 insertBefore() 6.3.6 insertFirst() 6.3.7 insertHtml() 6.3.8 overwrite() 6.4 Ext.core....

    extjs使用pagingtoolbar时,点击下一页,出现查询结果和查询条件不的解决办法

    `Ext.apply`函数用于合并两个对象的属性,这样在调用`store.load`时,服务器端就能接收到完整的查询条件。 注意,`return true`是必需的,因为`beforechange`事件的返回值决定是否继续执行默认的行为(加载数据)。...

    Extjs事件和模板

    store: Ext.create('Ext.data.Store', {data: data}), itemSelector: 'div' }); Ext.getCmp('container').add(list); // 假设有一个id为'container'的容器 } }); }); ``` 综上所述,EXTJS的事件系统和模板...

    精通JS脚本之ExtJS框架.part1.rar

    6.4.4 Ext.query与Ext.select 6.5 应用模板 6.5.1 Ext.Template 6.5.2 Ext.XTemplate 第7章 设计表单类布局 7.1 Form表单简介 7.1.1 Form表单的基本配置 7.1.2 ExtJS对Form表单的封装 7.2 ExtJS的表单组件 ...

    ExtJs-API中的一些重要的详解文档

    例如,当你创建一个新组件时,可以使用`Ext.apply`来设置默认配置和用户自定义配置。 2. **Ext.emptyFn**: 这是一个返回空函数的函数,常用于需要一个空函数作为回调或占位符的情况。 3. **Ext.applyIf()**: 类似...

    Ext grid合并单元格

    首先,创建了一个名为 `MyGridView` 的类,该类继承自 `Ext.grid.GridView`。然后,重写了 `renderHeaders` 方法,该方法负责生成 Grid 的表头 HTML 结构。 ```javascript MyGridView = Ext.extend(Ext.grid....

    Ext-JS框架中文文档

    - **Ext.apply() 和 Ext.applyIf()**: 这两个函数用于合并对象,它们在配置组件时非常有用。 2. **消息框** - **提示框**: 最简单的消息框类型,用于显示简单的提示信息。 - **输入框**: 允许用户输入文本的消息...

    EXT扩展Htmleditor,在工具栏中添加插入图片按钮,可选择图片插入到编辑器中(也可添加其他功能按钮)

    1. 定义插件:首先,你需要创建一个EXT插件类,继承自`Ext.EditorPlugin`或`Ext.util.Observable`,并在构造函数中初始化按钮配置。 ```javascript Ext.ns('MyPlugins'); MyPlugins.ImageInsert = function(config)...

    ext入门学习.pdf

    类的创建和继承则可以通过JavaScript的原型链实现,或者使用ExtJS提供的`Ext.extend`方法。此外,`Ext.apply`可以用于向对象动态添加属性和方法。 获取界面上的元素是ExtJS中的重要操作,这主要通过Ext.Element实现...

    ext入门学习文档

    - **命名空间**:使用`Ext.namespace`定义命名空间,例如`Ext.namespace("Ext.cc")`。 - **对象创建**:可以通过传统的JavaScript语法创建对象,然后利用`Ext.apply`方法添加额外的属性和方法。 ```javascript Ext...

Global site tag (gtag.js) - Google Analytics