导航

将一个满足EXT格式的对象变成一个EXT组件

Posted on 2013-08-19 12:32  小强有毒  阅读(232)  评论(0)    收藏  举报

这个东西平时基本很少遇见,但是今天遇见了。问题是,当我们以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组件了。