我有一个表单,其中包含Employee Model的字段和Person Model的字段。
员工模型
Ext.define('App.model.Employee', {
extend: 'Ext.data.Model',
fields: [{
name: 'EmployeeId',
type: 'int'
},
{
name: 'PersonId',
type: 'int'
},
'EmployeeNumber',
'JoinDate'
],
belongsTo: 'App.model.Person'
});
人物模型
Ext.define('App.mode.Person', {
extend: 'Ext.data.Model',
fields: [{
name: 'PersonId',
type: 'int'
},
'FirstName',
'LastName'
],
hasMany: {
model: 'App.model.Employee',
name: 'Employees'
}
});
我的商店:
var store = Ext.create('Ext.data.Store', {
model: 'App.model.Employee',
autoLoad: false,
autoSync: true,
proxy: {
type: 'ajax',
api: {
read: 'api/employee/getemployee'
},
reader: {
type: 'json',
successProperty: 'success',
root: 'data',
messageProperty: 'message'
}
}
});
这是我的实际JSON
"data": [{
"EmployeeId": 5,
"PersonId": 1,
"EmployeeNumber": 2001,
"JoinDate" : "",
"Person": {
"PersonId": 1,
"FathersLast": "SMITH",
"FirstName": "JOHN"
}
}],
我的问题是我的json响应(来自服务器)应如何构建以便加载存储成功?
答案 0 :(得分:0)
您可以在Ext data package guide“加载嵌套数据”部分找到解释和示例代码。其他例子在Association documentation的标题中。两个示例JSON文件都显示了所需的结构。
答案 1 :(得分:0)
在查看您的代码和json结构后,我可以识别出每个员工都有一个person对象,因此您需要更正您的映射。不要在人员模型中定义hasMany关系,而应为员工中的人员定义hasOne关系。
hasOne:{ 型号:' App.mode.Person', 姓名:'人物' }
请试一试。你的json结构看起来不错。