ExtJS的组合框 - 让JSON更深入的价值

问题描述:

对于内部原因,我要送从服务器返回到组合如下JSON字符串:ExtJS的组合框 - 让JSON更深入的价值

{"root":[{"employeeId":1,"user":{"userName":"admin"}}]} 

正如你所看到的,用户实际上是一个对象,任何方式,组合框将能够读取它?
组合配置为如下:

 ,displayField:'user.userName' 
      ,title:'Manager' 
      ,xtype: 'numberfield' 
      ,hiddenName: 'employeeId' 
      ,valueField : 'employeeId' 

这是商店:

var store = new Ext.data.JsonStore({ 
    autoLoad: true, 
    url: "/some_data", 
    root: 'root', 
    methos:'POST', 
    fields:[{name:"employeeId"},{name:"user.userName"}] }); 

的分机不会渲染它,因为任何解决办法?

使用的字段的“映射”属性在您的商店重新映射“深”的价值观,以简单的名称组合框就可以参考:

new Ext.form.ComboBox({ 
    fieldLabel: 'Manager', 
    hiddenName: 'employeeId', 
    store: new Ext.data.JsonStore({ 
     root: 'root', 
     url: '/some_data', 
     method: 'POST', 
     fields: [ 
      {name: 'employeeId'}, 
      {name: 'userName', mapping: 'user.userName'} 
     ] 
    }), 
    displayField: 'userName', 
    valueField: 'employeeId' 
}); 
+0

谢谢,但我得到“用户没有定义”,甚至尽管它被定义.... – fatnjazzy 2011-04-24 04:22:03

+0

我会怀疑,那么在JSON响应中的记录之一可能会丢失用户属性。显示完整JSON数据以及如何将其加载到商店中的更完整示例会很有帮助。 – owlness 2011-04-24 17:34:23