Ext.create返回构造函数而不是object

时间:2013-10-06 12:34:33

标签: javascript extjs

Ext.application({
        name: 'test',
        launch: function() {
            var grid = Ext.create('Ext.grid.Panel', {
                id:'grid',
                renderTo: Ext.getBody(),
                store: userStore,
                width: 400,
                height: 200,
                title: 'Application Users',
                columns: [
                    {
                        text: 'word1',
                        width: 100,
                        sortable: false,
                        hideable: false,
                        dataIndex: 'word1'
                    },
                    {
                        text: 'word2',
                        width: 100,
                        sortable: false,
                        hideable: false,
                        dataIndex: 'word2'
                    }
                ],
                dockedItems: [
                    {
                        xtype: 'pagingtoolbar',
                        store: userStore,
                        dock: 'bottom',
                        displayInfo: true
                    }
                ]
            });

            //error here
            grid.reload();

我在控制台中看到错误:

  

未捕获TypeError:对象[object Object]没有方法'reload'

在调试器中,我看到变量'grid'的类型为'constructor'

  

格:构造

所以难怪为什么没有方法'重载'。我很奇怪为什么我得到对构造函数的引用而不是引用新创建的对象。

实例化另一个ExtJs核心类时会出现同样的问题。

可能它与我的项目结构有关吗?

P.S。我是JavaScript新手,所以如果问题在于我对核心概念的理解不够,那对我来说就不足为奇了。

1 个答案:

答案 0 :(得分:1)

问题是网格没有reload方法,加载由商店处理,所以你想要grid.getStore().load();

要做的第一件事是检查文档,你会发现网格上没有重载方法。