Ext JS 4 新特征2:配置项属性config之二

☞ Config(自动的setters和getters)

Ext JS 4介绍了config声明方式,在Ext JS 中也有几个例子;在运行程序的时候,使用setter和getter方法就可以传递一些configuration参数,还可以改变这些参数。当在config声明中定义某某配置项属性的时候,Ext JS 4将会自动地生成与属性紧密相关的4个方法:getter,setter,reset和apply。

让我们在MyApp.MyWindow这个类中看一下如何声明config的,代码如下:

 Ext.define('MyApp.MyWindow', {
extend : 'Ext.Window',
width :,
height :, config : {
title : '欢迎光临本窗口'
}, //基于学习,写了一个的applyTitle,
applyTitle : function(newtitle) {
this.width=;
console.log("调用了applyTitle!");
return newtitle;
}
});

在代码中,设置这个窗口类的缺省标题是:'欢迎光临本窗口'         

到现在需要我们注意的是,在config中只定义了一个title属性,那么Ext框架随之将会为title自动产生了以下的4个方法:

•       getTitle: 获取title属性.

•       setTitle: 设置新的值到title属性.

•       resetTitle: 把title属性恢复到默认值.

•       applyTitle: 当你每一次调用setTitle的时候,这个方法同时将被调用。可以用它来做一些自定义处理的东西。

程序继续进行…,当我们建立了'MyApp.MyWindow'类的一个实际窗口后,我们就可以调用这4个方法中的任何一个了:

   var win = Ext.create('MyApp.MyWindow');

win.show();

我很遗憾的看到上图这样的结果,  到现在也不知道是什么原因,猜测是默认的窗口类就是这个德行吧!

程序继续修改…,当我在win窗口显示之前调用了setTitle后,看到了一些正常,继续添加了setTitle()方法后的代码,运行的结果如下所示:

…

var win = Ext.create('MyApp.MyWindow');

       win.setTitle('我改变了默认的窗口标题'); 

win.show();

…

按照以前的经验,在调用setTitle的时候,applyTitle应该会在之前被触发的同时调用,但在这里我没有发现这个结果,不知道是什么原因?这就是在下面这段后记的主要内容。

后记:如果我把title略加改变,如atitle;把applyTitle()改为对应的applyAtitle(),这样就完全可以了,而且,效果很好。后来我才注意到,是书本举得这个例子误导了我。在经过多次的测试后,我猜测title这个属性项早被窗口类拥有了,事实确实证明是这样的。本类MyApp.MyWindow是继承了Ext.Window窗口类,如果我把config中的title去掉后,也就是在我们没有任何自定义的config属性项的情况下,仍然去调用win.setTitle(),发现我们还可以改变窗口的标题,这说明title是窗口类的一个早就存在的名称了,这与我想使用config来定义一个新title有冲突,所以说书本上用窗口类后再用一个早已存在的title作为你自己要定义的新属性项是不合适的,因为在后来的代码调用的是原来早就存在setTitle(),和因它而触发的原来早就有的ApplyTitle(),而你自己写的applyTtitle()不能够覆盖系统存在的那个的。所以书本上的这个例子是不恰当的,只是让我更进一部了解点东西。<end-20130718>

Ext JS 4 新特性2:配置项属性(config)之二的更多相关文章

  1. Ext JS 6 新特性和工具

    Ext JS 6 新特性和工具 Ext JS 6 带来很多新特性.工具和改进.以下是一些亮点: • 合并了 Ext JS & Sencha Touch - 在 Ext 6, 你可以访问 Ext ...

  2. Ext JS 4 新特性2:配置项属性(config)之一

    Ext JS 4 新特征2:配置项属性config 最新版本的Ext JS 4.2的另外一个伟大的新特征就是增加了configuration配置项属性,当我们在创建一个新类的时候,经常性的要设置某某属 ...

  3. JS 4 新特性:混合属性(mixins)

    Ext JS4的新特征1:混合属性(mixins) 组合是Extjs4的新特性,可用于实现多继承的情况.该属性会以同步方式加载类文件,并实例化该类(译者推理其内部使用Ext.create方法).直接上 ...

  4. JS 4 新特性:混合属性(mixins)之二

    Mixins many classes[混合许多个类] 迄今为止,我们已经学会了简单的继承,我们还能够通过使用mixins处理机制来混合许多类.源于这种理念是非常简单的:我们能够把许多个类最终混合到一 ...

  5. 最新iOS 6 in Xcode4.5新特性——Storyboard和属性自动绑定

    最新iOS 6 in Xcode4.5新特性编程之二(上)——Storyboard和属性自动绑定 从Xcode 4.3开始,Storyboard 就是iOS 5和iOS 6中令人兴奋的一个新特性,他将 ...

  6. 【Win10】开发中的新特性及原有的变更(二)

    声明:本文内容适用于 Visual Studio 2015 RC 及 Windows 10 10069 SDK 环境下,若以后有任何变更,请以新的特性为准. 十一.x:Bind 中使用强制转换 这点是 ...

  7. Ext JS学习第十七天 事件机制event(二)

    此文仅有继续学习笔记: 昨天说了三种邦定事件的方法,今天说一下自定义事件 假设现在又这样的情景一个自定义的事件 没有用到事件处理的场景        母亲问孩子和不饿->             ...

  8. Css3新特性总结之边框与背景(二)

    一.条纹背景 利用background为linear-gradient函数实现,linear-gradient取值如下: <angle>:角度,渐变的方向 to left right to ...

  9. html5新特性contenteditable 属性更容易实现动态表单

    介绍html5新特性的一个属性:contenteditable 作用域全局.所有的块标签都可以,例如:span.p.div.td等标签.但是,不可以作用域<br/>类型的标签. conte ...

随机推荐

  1. SwitchyOmega 在线调试

    1,chrome 安装 Proxy SwitchyOmega 扩展程序 2,新建情景模式,输入模式名称"例如:new proxy1",选择"请选择情景模式的类型:代理服务 ...

  2. Linux安装时内存如何分区的相关问题

    Linux系统安装时内存如何分区:Linux系统必须的分区是根分区(/)和swap交换分区.普通用户一般分三个区,一个根分区(/),一个家目录(home分区),一个交换分区(swap分区),以80G的 ...

  3. 移动APP的开发迭代离不开测试,你搞清楚其中的关键点了吗?

    App测试的一个要求是一个beta测试环境.为此,操作系统制造商要么提供他们自己的测试环境,比如:Testflight (iOS),要么可以使用任一商用工具,如:HockeyApp (Android) ...

  4. TestNG中的数据源DataProvider概述

    http://blog.csdn.net/taiyangdao/article/details/52141711 在上一篇文章中,我们知道带参数的测试方法,可以在testng.xml配置文件中为其参数 ...

  5. jq中数组应用的错误

    js中数组可以这样使用: <ul id="ul"> <li value="1">s</li> <li>f< ...

  6. Zotero 使用指南

    DownLoad Page: https://onedrive.live.com/redir?resid=5084666E7B16AA85!109&authkey=!ABHQp7yfMnLpE ...

  7. javascript 实现tab菜单切换

    <!DOCTYPE html> <html> <head> <title></title> </head> <body s ...

  8. ASCII编码对照表

    Bin(二进制) Oct(八进制) Dec(十进制) Hex(十六进制) 缩写/字符 解释 0000 0000 0 0 00 NUL(null) 空字符 0000 0001 1 1 01 SOH(st ...

  9. 实战Nginx与PHP(FastCGI)的安装、配置与优化

    一.什么是 FastCGIFastCGI是一个可伸缩地.高速地在HTTP server和动态脚本语言间通信的接口.多数流行的HTTP server都支持FastCGI,包括Apache.Nginx和l ...

  10. nginx、Apache、IIS服务器解决 413 Request Entity Too Large问题方法汇总

    一.nginx服务器 nginx出现这个问题的原因是请求实体太长了.一般出现种情况是Post请求时Body内容Post的数据太大了,如上传大文件过大.POST数据比较多. 处理方法 在nginx.co ...