这个东西平时基本很少遇见,但是今天遇见了。问题是,当我们以xtype方式申明一个EXT组件时。如下
1 var obj = { 2 id:'io', 3 xtype:'textfield', 4 name:"name" 5 }
此时这个只是一个对象,并为关联成一个EXT文本框,他与New出来的文本框存在本质的区别,这个很好理解
1 new Ext.form.TextField({ 2 id:'io', 3 name:"name" 4 })
那如何将第一种对象变成一个EXT组件呢,查查资料,看看源码。很好解决,xtype生成组件都是通过Ext.ComponentMgr这个对象来注册的。所以去源码搜搜他的方法,发现一个
特别有嫌疑的方法,create(d, e) 此方法接收2个参数,开始不知道是什么参数,试试就知道了。第一个是你需要创建的对象,第二个类型(当然,这个类型必须在Ext.ComponentMgr已经注册了的xtype)。
所以一看代码就能知道
1 var obj = {
2 id:'io',
3 xtype:'textfield',
4 name:"name"
5 }
6 var obj_ = Ext.ComponentMgr.create(obj,obj.xtype);
方法会产生一个新对象,这个就是EXT组件了。
浙公网安备 33010602011771号