为什么我得到" TypeError:item.onAdded不是一个函数"何时向容器添加组件?

时间:2014-05-20 20:08:34

标签: extjs

我正在尝试创建一个基于配置创建容器内容的框架UI,我收到错误" TypeError:item.onAdded不是函数"。

这在我的小型测试应用中不会发生,但它确实发生在我们的实际应用中。无法弄清楚原因。

这是一些部分代码。

Ext.define('atlas.screen.Viewport', {
    extend: 'Ext.container.Viewport',
    alias: 'widget.atlas.Viewport',

    autoScroll: true,
    layout: 'fit',

    requires: [
        'base.framework.MainAppView',
        'base.framework.MainAppNavigation'
    ],

    items: [{
        // MainAppView requires providing config with items to populate the north,
        // west, and center regions.
        xtype: 'mainAppView',
        westItems: [{
            xtype: 'mainAppNavigation'
        }]
     }]
});

Ext.define('base.framework.MainAppView', {
    extend: 'Ext.container.Container',
    alias: 'widget.mainAppView',

    requires: ['base.util.CommonBaseUtil'],

    autoScroll: true,
    layout: 'border',

    westItems: null,

    initComponent: function() {
        var me = this;

        Ext.applyIf(me, {
            items: [{
                xtype: 'container',
                itemId: 'appWestContainer',
                region: 'west',
                width: 85,
                items: me.westItems,
                hidden: true,
                listeners: {
                    afterrender: CommonBaseUtil.showHide
                }
            }]
        });
        me.callParent(arguments);
    },

    applyWestItems: function(westItems) {
        this.down('#appWestContainer').add(westItems);
    }
});

Ext.define('base.framework.MainAppNavigation', {
    extends: 'Ext.container.Container',

    alias: 'widget.mainAppNavigation',

    initComponent: function() {
        var me = this;

        Ext.applyIf(me, {
            items: [{
                xtype: 'button',
                itemId: 'myButton',
                text: 'test'
            }]
        });
        me.callParent(arguments);
    }
});

1 个答案:

答案 0 :(得分:14)

这是我最喜欢的BS ExtJS问题之一,"扩展" VS"延伸"。你会认为Sencha Cmd可以抓住这个。