我正在使用ExtJs4而且我有json轰鸣声。 将它映射到Extjs Models时遇到一些问题:
{
"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"
}
感谢。
答案 0 :(得分:1)
我只需要声明:
{name: 'convenio', type: 'auto'}
在我的模型中删除belongsTo。