我有一个包含2个网格的视图。网格由2个型号支持。两个模型之间的关系是一对多(无密钥关联)。
型号:
Ext.define('TestApp.model.association.Project', {
extend: Ext.data.Model,
fields: [
{
type: 'int',
name: 'id'
}, {
type: 'string',
name: 'project'
}, {
type: 'number',
name: 'allocation'
}, {
type: 'string',
name: 'comments'
}, {
type:'string',
name:'state'
}
]
});
Ext.define('TestApp.model.association.User', {
extend: Ext.data.Model,
fields: [{
type: 'int',
name: 'id'
}, {
type: 'string',
name: 'employee'
}, {
type: 'string',
name: 'location'
}, {
type: 'string',
name: 'department'
}, {
type: 'string',
name: 'manager'
}, {
type: 'number',
name: 'allocation'
}],
hasMany: [{
model: 'TestApp.model.association.Project',
// Note: use of 'role' is preferred over 'name'
role: 'projects',
// Define role for inverse association
inverse: {
role: 'user'
}
}]
});
从子部件编辑一行后,我将父记录设置为脏(dirty = true),然后我同步存储。在服务器上完成必要的工作后,我发回响应。收到回复后,子部分的脏标记仍然为真。
当没有关联时,在收到服务器的响应后,脏标志会自动清除。
我已经创建了一个fiddle以获取更多详细信息。
如何在更新后清除关联中的脏标志?
修改
我已经更新了小提琴以更好地展示我的问题。 重现的步骤:
请求被发送到服务器。服务器用json响应(服务器响应是硬编码的,总是一样的。)
客户端无法设置响应中收到的子记录并清除脏标记。
为什么这样做?这是一个错误吗?
答案 0 :(得分:0)
在设置关联时,所有关联的模型必须属于同一模式。参考此,我对您的代码进行了一些更改。请检查保存按钮现在是否正常工作。我还注释了代码的某些部分以进行初始测试。
找到代码here