2013-03-09 94 views
1

我正在使用ExtJs4,并且我有json波纹管。 我把它映射到ExtJS的模型时,有一些问题:将json映射到extjs模型

{ 
     "success": true, 
     "data": { 
     "bairro": "Vila Paulista", 
     "cep": "86730-000", 
     "convenio_id": 52, 
     "nome": "Peter Parker", 
     "consultas": [ 
      { 
      "data": "08/08/2008", 
      "paciente_id": 200, 
      "senha": null 
      }, 
      { 
      "data": "22/02/2010", 
      "paciente_id": 200, 
      "senha": null 
      }, 
     "convenio": { 
      "id": 52, 
      "nome": "C80" 
     } 
     } 
    } 

这里是我的模型:

Ext.define('App.model.vo.Paciente', { 
    extend: 'Ext.data.Model', 
    requires: [ 
     'App.model.vo.Consulta', 
     'App.model.vo.Convenio' 
    ], 
    fields: [ 
     {name: 'id', type: 'auto'}, 
     {name: 'bairro', type: 'auto'}, 
     {name: 'cep', type: 'auto'}, 
     {name: 'convenio_id', type: 'auto'}, 
     {name: 'nome', type: 'auto'} 
    ], 
    belongsTo: { 
     model: 'App.model.vo.Convenio', 
     name: 'convenio', 
     foreignKey: 'convenio_id', 
     getterName: 'getConvenio'}, 
    hasMany: { 
     model: 'App.model.vo.Consulta', 
     name: 'consultas'}, 
     idProperty: 'id', 
    proxy: { 
     type: 'rest', 
     url : '/pacientes', 
     format: 'json', 
     reader: { 
      root: 'data', 
      successProperty: 'success' 
     }, 
     writer: { 
      getRecordData: function(record) { 
       return { paciente: record.data }; 
      } 
     } 
    } 
}); 

并加载数据:

App.model.vo.Paciente.load(id, { 
     success: function(rec) { 
      console.log(rec.consultas()); 
      console.log(rec.getConvenio()); 
     } 
    }); 

的rec.consultas()非常好地显示所有子记录,但rec.getConvenio()向服务器发出请求以再次获取数据。

我需要使用已在JSON文件中的数据,在这种情况下:

"convenio": { 
     "id": 52, 
     "nome": "C80" 
    } 

感谢。

回答

1

我只是不得不宣布:

{name: 'convenio', type: 'auto'} 

在我的模型,并删除属于关联的东西。