在ExtJS4中加载带有json数据的combobox

在ExtJS4中加载带有json数据的combobox,extjs4,Extjs4,我只是尝试使用一个基本数据存储将一些json数据加载到我的组合框中。以下是我的json数据: {“服务”:[{“id”:1,“name”:“dropbox”},{“id”:2,“name”:“facebook”},{“id”:3,“name”:“twitter”}]} 以下是我的extjs 4代码: Ext.onReady(函数(){ Ext.define('ServiceList'{ 扩展:“Ext.data.Model”, 字段:[ “id”,“name” ] }); var store=

我只是尝试使用一个基本数据存储将一些json数据加载到我的组合框中。以下是我的json数据:

{“服务”:[{“id”:1,“name”:“dropbox”},{“id”:2,“name”:“facebook”},{“id”:3,“name”:“twitter”}]}
以下是我的extjs 4代码:

Ext.onReady(函数(){
Ext.define('ServiceList'{
扩展:“Ext.data.Model”,
字段:[
“id”,“name”
]
});
var store=Ext.create('Ext.data.store'{
型号:“服务列表”,
代理:{
键入:“json”,
url:“/account/service/list”,
读者:{
root:'服务',
totalProperty:“totalCount”
}
}
});
store.load();
Ext.create('Ext.panel.panel'{
布局:“自动”,
标题:“VAC”,
宽度:“100%”,
renderTo:“vac应用程序窗口”,
项目:[{
xtype:'tabpanel',
自动标签:是的,
活动选项卡:0,
边界:错,
默认值:{autoHeight:true,bodyStyle:'padding:10px'},
项目:[{
标题:“数据服务”,
项目:[{
xtype:“组合”,
商店:商店
}]
}]
}]
});
});
一切都是在本地主机上完成的,所以没有跨域的东西。我一直在看文档,但就是不知道我做错了什么

一如既往,任何提示都是非常感谢的

更新:

我编辑了对数据存储的一些更改,并进一步:

Ext.define('ServiceList'{
扩展:“Ext.data.Model”,
字段:[
{name:'id',type:'int'},
{name:'name',type:'string'}
]
});
var store=Ext.create('Ext.data.store'{
型号:“服务列表”,
代理:{
键入:“ajax”,
url:“/account/service/list”,
读者:{
root:'服务',
键入:“json”
}
}
});
store.load();
现在,当页面加载或我尝试单击组合框时,它所寻址的url为:

获取/帐户/服务/列表?\u dc=1318340688155&page=1&start=0&limit=25

从我的阅读来看,这看起来像jsonp,但我不知道页面、开始和限制参数来自哪里

更新2:

多亏了Molecular Man的帮助,我才得以解决这个问题:

Ext.onReady(函数(){
Ext.define('ServiceList'{
扩展:“Ext.data.Model”,
字段:[
{name:'id',type:'int'},
{name:'name',type:'string'}
]
});
var store=Ext.create('Ext.data.store'{
型号:“服务列表”,
自动加载:对,
代理:{
limitParam:未定义,
起始图:未定义,
参数名称:未定义,
pageParam:未定义,
诺卡奇:错,
键入:“ajax”,
url:“/account/service/list”,
读者:{
root:“服务”
}
}
});
Ext.create('Ext.panel.panel'{
布局:“自动”,
标题:“VAC”,
宽度:“100%”,
renderTo:“vac应用程序窗口”,
项目:[{
xtype:'tabpanel',
自动标签:是的,
活动选项卡:0,
边界:错,
默认值:{autoHeight:true,bodyStyle:'padding:10px'},
项目:[{
标题:“数据服务”,
项目:[{
xtype:“组合”,
queryMode:“本地”,
emptyText:“选择服务”,
店:店,,
displayField:'名称',
valueField:'id'
}]
}]
}]
});
});

希望这对其他人有所帮助:)

您的组合框配置不包含所需的
displayField
(默认为“text”)和
valueField
(默认为displayField的值):

        items: [{
            xtype:'combo',
            displayField: 'name',
            valueField: 'id',
            store:store
        }]

谢谢,我补充说,不过还是不行。。代理类型必须是json还是jsonp?@battlemidget,两者都不是。它必须是“ajax”。我在我的调试控制台中看到这种情况:/account/service/list?_dc=1318340688155&page=1&start=0&limit=25我是否需要以某种方式清除参数?@battlemidget,此参数由代理自动添加。如果要删除它们,请将
limitParam:undefined,startParam:undefined,pageParam:undefined,noCache:false
添加到代理的配置中。好了,现在我该如何删除:/account/service/list?查询=