Немного покопался в коде экста. Сложилось такое впечатление что мои модели удалялись бы в правильном порядке, если бы я настроил ассоциации. Ладно, начал пробовать. Нашел вот такую статью:
http://extjs-tutorials.blogspot.com/...ips-rules.html и сделал у себя ассоциацию по аналогии. Только верхняя модель у меня называется SafetyRound. Однако при удалении этого самого раунда ничего не изменилось, по прежнему сначала удаляется он, а уже потом дети. Что я не так делаю?
Ext.define('SafetyRound.model.entity.SafetyRound', {
extend: 'Ext.data.TreeModel',
requires: ['SafetyRound.model.entity.SafetyRoundMeasure'],
childType: 'SafetyRound.model.entity.SafetyRoundMeasure',
idProperty: 'ID',
fields: [
{ name: 'ID', type: 'int' },
{ name: 'SafetyRoundProject_ID', type: 'int' }
],
hasMany:[
{
foreignKey: 'SafetyRound_ID',
associationKey: 'measures',
name: 'measures',
model: 'SafetyRound.model.entity.SafetyRoundMeasure'
}
],
proxy: {
type: 'ajax',
idParam: 'ID',
pageParam: '',
limitParam: '',
startParam: '',
reader: {
type: 'json',
rootProperty: 'data',
messageProperty: 'error'
},
writer: {type: 'json'},
api: {
create: Constants.Server.CONTROLLER + '?cmd=sr.safetyround.create',
read: Constants.Server.CONTROLLER + '?cmd=sr.safetyround.read',
update: Constants.Server.CONTROLLER + '?cmd=sr.safetyround.update',
destroy: Constants.Server.CONTROLLER + '?cmd=sr.safetyround.destroy'
}
}
});
Ext.define('SafetyRound.model.entity.SafetyRoundMeasure', {
extend: 'Ext.data.TreeModel',
childType: 'SafetyRound.model.entity.SafetyRoundMeasure',
idProperty: 'ID', // if enabled, breaks correct expand/collapse operations in tree panels :((
fields: [
{ name: 'ID', type: 'int' },
{ name: 'SafetyRound_ID', type: 'int' }
],
proxy: {
type: 'ajax',
idParam: 'ID',
pageParam: '',
limitParam: '',
startParam: '',
reader: {
type: 'json',
rootProperty: 'data',
messageProperty: 'error'
},
writer: {type: 'json'},
api: {
create: Constants.Server.CONTROLLER + '?cmd=sr.measure.create',
read: Constants.Server.CONTROLLER + '?cmd=sr.measure.read',
update: Constants.Server.CONTROLLER + '?cmd=sr.measure.update',
destroy: Constants.Server.CONTROLLER + '?cmd=sr.measure.destroy'
}
}
});