【问题标题】:Mapping json to extjs model将 json 映射到 extjs 模型
【发布时间】:2013-03-10 09:09:42
【问题描述】:

我正在使用 ExtJs4,并且我有下面的 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"
    }

谢谢。

【问题讨论】:

    标签: extjs extjs4


    【解决方案1】:

    我只需要声明:

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

    在我的模型中并删除 belongsTo 的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-19
      • 1970-01-01
      相关资源
      最近更新 更多