ExtJS TypeError:item.onAdded不是函数

时间:2016-07-23 04:47:18

标签: javascript extjs extjs4.1 extjs4.2

我使用ExtJS 4构建了一个简单的UI。我创建了两个名为MainMenu的视图类,它们位于视图文件夹中。之后我按照以下方式包括这些课程。但我遇到了一个错误。 TypeError: item.onAdded is not a function已在控制台中打印出来。这是我的代码

Main.js

Ext.define('Ext1.view.Main', {
    extend: 'Ext.container.Container',
    requires:[
        'Ext.tab.Panel',
        'Ext.layout.container.Border'
    ],
    items : [
        {
            xtype : 'menume'
        }
    ]
});

Menu.js

Ext.define('Ext1.view.Menu',{
    alias : 'widget.menume',
      title: 'User Form',
    height: 150,
    width: 300,
    bodyPadding: 10,
    defaultType: 'textfield',
    items: [
        {
            fieldLabel: 'First Name',
            name: 'firstName'
        },
        {
            fieldLabel: 'Last Name',
            name: 'lastName'
        },
        {
            xtype: 'datefield',
            fieldLabel: 'Date of Birth',
            name: 'birthDate'
        }
    ]
});

的application.js

Ext.define('Ext1.Application', {
    name: 'Ext1',

    extend: 'Ext.app.Application',

    views: [
       'Ext1.view.Menu', 'Ext1.view.Main'
    ],

    controllers: [
        // TODO: add controllers here
    ],

    stores: [
        // TODO: add stores here
    ]
});

为什么我有这个错误?

2 个答案:

答案 0 :(得分:2)

因为Ext1.view.Menu没有扩展任何内容。它至少需要(有物品)容器。

答案 1 :(得分:0)

Ext.define('Ext1.view.Menu',{
    extend: 'Ext.menu.Menu'// add this
    alias : 'widget.menume',
      title: 'User Form',
    height: 150,
    width: 300,
    bodyPadding: 10,
    defaultType: 'textfield',
    items: [
        {
            fieldLabel: 'First Name',
            name: 'firstName'
        },
        {
            fieldLabel: 'Last Name',
            name: 'lastName'
        },
        {
            xtype: 'datefield',
            fieldLabel: 'Date of Birth',
            name: 'birthDate'
        }
    ]
});