我尝试将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>
导致此错误的原因是什么,我该如何解决?
答案 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'
})
});
});