1. Ext.onReady方法: 通常是利用该方法进行一些初始化的工作。如在onReady方法中创建一个HtmlEditor。Ext.onReady需要传入一个回调函数。而源代码则是在src/ext-core/src/core/EventManager.js里面。这个方法实际上是onDocumentReady的一个简写。具体的过程简单介绍一些,如对于IE浏览器,则是通过一个定时器不断调用checkReadyState来判断是否ready。而具体的checkReadyState则是根据document.readyState是否是"complete"或者DOC.documentElement.doScroll('left')成功执行来判断。对于后面这个判定方法没有理解。个人觉得document.readyState应该就足够了。毕竟已经监听了onreadystatechange事件。
Ext.onReady(function(){
console.info('woohoo!!!');
Ext.QuickTips.init(); // enable tooltips
g_editor = new Ext.form.HtmlEditor({
renderTo: Ext.getBody(),
width: 800,
height: 300,
value: "<b>hello</b>"
});
}); //end onReady
2.Ext.extend(subConstructorFunciton, superConstructorFunction, overrideObject): 主要利用了prototype的原理来实现extend不过不能理解其定义为
extend:function(){..init code... return function(sb, sp, overrides){....}}()
其中后面return的function才是真正的extend定义。为什么不写成
extend:function(sb, sp, overrides){..init code.. ......}
这样把return前面的init code都移动到extend方法里面。这样看起来更加自然啊。估计是因为不想把这些初始化代码放到每个extend方法里面。但是这样又有什么影响呢?反正这些代码也只是在内存中存在一份。
3. Ext.Form是一个很有点奇怪的东西,譬如下面的代码创建一个form以及一个input text。当用户输入后,怎么样获取input text里面的值呢?user = simple.items.get(0)获取一个Ext封装的Object,然后user.value却不是你想要的。真是很奇怪。但是当你把focus从input text移除,然后再用user.startValue却是可以得到的。真正合理的用法应该是user.el.dom.value,从字面意思应该猜出来是获取input DomElement的value属性值。不知道还有没有其他的方法???
simple = new Ext.form.FormPanel({
standardSubmit: true,
frame:true,
title: 'Register',
width: 350,
defaults: {width: 230},
defaultType: 'textfield',
items: [{
fieldLabel: 'Username',
name: 'username',
value: 'hello',
allowBlank:false
}
]
});