2013-03-09 122 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'} 

在我的模型,並刪除屬於關聯的東西。