如何浏览Ext-JS代码?

时间:2011-03-11 22:03:09

标签: eclipse extjs

我很难学习Javascript / Ext-JS。我为Eclipse中的一些代码完成设置了Spket插件,但是比如说,如果我看到像这样的一段代码....

Ext.ComponentMgr.get('communicationName').findById('showBannerId').add(
{
     xtype : 'displayfield',
     id : 'bannerField',
     value : banners,
     autoHeight : true,
     width : 1000
});

Spket突出显示.get红色,因此我无法进一步完成get()的编码。除了试图寻找showBannerId(我发现它是一个表...它有布局:'table'成员)。我在Ext-JS API中发现这个Ext-JS成员有一个名为'add'的方法?

**侧面注意我为什么要查看这段代码:

基本上我需要确保showBannerId不会不断添加这些displayFields。应检查id bannerField以查看:

- 如果它存在( 我刚想出来 )Ext.get('bannerField');和

- 如果它存在则应该只编辑displayField ...而不是重新创建它。如何编辑其属性( 研究xtype displayfield的setValue方法)

希望这有道理......如果我不清楚,请告诉我。

1 个答案:

答案 0 :(得分:1)

<强>资源

ExtJS DocumentationExamples应该是关于ExtJS的头号信息来源。

发现方法/对象

在您的特定情况下,您如何知道相关元素采用add方法?您基本上必须查看您在文档中调用的函数,以及它们将返回的内容。例如,您拨打Ext.ComponentMgr.get。在文档中,这将返回Ext.Component。值得注意的是,有许多ExtJS对象继承自Ext.Component(事实上,大多数对象都是从它继承的!)。

通过编程,您可以通过调用Ext.ComponentgetXType来确定isXType(type)的实际类型,以检查某些内容是否属于某种类型的组件(Ext.Component文档有一个xtypes列表及其对应的类)。根据你所写的内容,如果你想知道你有什么样的组件,你可能最好通过你的源代码查看有问题的id(即showBannerId),看看它是怎么回事声明,或声明它作为其一部分的对象。

您的具体问题

如果你想......

  • 检查字段是否存在;和
  • 编辑它,如果是的话

以下代码对您有所帮助:

var elem = Ext.getCmp("bannerField") //Shorthand for Ext.ComponentMgr.get
//check if a field exists:
if(!Ext.isEmpty(elem)) {

    //make sure it is the right type
    if(elem.isXType('displayfield')) {
        elem.setValue(banners) //since we know this is an Ext.form.DisplayField component
    }

} else {
    //element does not exist, so add it
    Ext.ComponentMgr.get('communicationName').findById('showBannerId').add({
        xtype : 'displayfield',
        id : 'bannerField',
        value : banners,
        autoHeight : true,
        width : 1000
    });
}

请注意,我使用Ext.getCmp(获取Ext.component)而不是Ext.get(获取Ext.Element;实质上是DOM对象的包装器)。

工具

如果您正在寻找使用ExtJS的好工具,我建议您查看Illumination,这是一个firebug扩展,它允许您比查看原始javascript对象更容易地查看ExtJS对象。如果你正在寻找对javascript和ExtJS的良好IDE支持......这是另一个问题!在IDE中支持javascript通常不是很好。