按照API上的说法,任何一个item只要是Ext.Component的一个子组件旧可以了。但我发现不少例子中根本就没有指定xtpye这个config option,比如:
[code="java"]var tabs2 = new Ext.TabPanel({
renderTo: document.body,
activeTab: 0,
width:600,
height:250,
plain:true,
defaults:{autoScroll: true},
items:{//没有xtype
title: 'Normal Tab',
html: "My content was added during construction."
}
});
[/code]
那么,怎么确定它是哪一种组件呢?怎么就知道它一定是Ext.Component的子组件呢?
刚翻了下api,如下:
Container.defaultType : String
The default xtype of child Components to create in this Container when a child item is specified as a raw configuration object, rather than as an instantiated Component.
This usually defaults to 'panel', but for Ext.form.FormPanel and Ext.form.FieldSet, the defaultType is 'textfield'.
一般的组件的子组件默认xtype是panel
FormPanel,FieldSet的默认子组件xtype是textfield
有默认值的.
普通的默认值是panel吧,FormPanel的子元素默认值是Label似乎.记不清了.
至于如何确定类型,有2个方法getXType() ,getXTypes()
extjs设计是很人性化的.为了减少代码,一般都有设计默认类型什么的