如何解决错误'ext-all.js Uncaught TypeError:无法调用undefined'的方法'getProxy'?

时间:2012-01-21 22:45:40

标签: javascript json extjs

我尝试将ExtJS与JSON数据库一起使用但我仍然遇到同样的错误:ext-all.js Uncaught TypeError: Cannot call method 'getProxy' of undefined

我的脚本是:

 Ext.onReady(function(
    var store=new Ext.data.Store( 
      reader=new Ext.data.JsonReader(        
                            {name: 'name'},
            {name: 'category' },
            {name: 'address'},                   
            {name: 'lat'},
            {name: 'long'},
                            {name: 'tel'},
                            {name: 'opening'},
            {name: 'closing'}),
                proxy=new Ext.data.HttpProxy({
            url : 'http://localhost/progetto/descrittore/json.php'}))
            // method : 'GET'
          })

在我的HTML中,我包括:

<script type="text/javascript" src="extjs/ext-all.js"></script>
<script type="text/javascript" src="extjs/prova.js"></script>

导致此错误的原因是什么,我该如何解决?

1 个答案:

答案 0 :(得分:4)

从类名称我猜你使用Ext JS 3.如果我错了,请纠正我。

问题是您没有遵循API。 Store构造函数具有以下签名:

newExt.data.Store( Object config ) : Object

您应该提供单个配置对象。你通过了读者和代理。 与Reader相同的故事。签名是

newExt.data.JsonReader( Object meta, Array/Object recordType ) : Object

您应该将元数据和记录定义作为数组传递。在纠正之后,Ext不再抛出exepctions了。请参阅下面的代码。

Ext.onReady(function(){
    var store=new Ext.data.Store({
        reader: new Ext.data.JsonReader({}, [     
            {name: 'name'},
            {name: 'category' },
            {name: 'address'},                   
            {name: 'lat'},
            {name: 'long'},
            {name: 'tel'},
            {name: 'opening'},
            {name: 'closing'}
        ]),
        proxy: new Ext.data.HttpProxy({
            url : 'http://localhost/progetto/descrittore/json.php'
        })
    });
});