Показать сообщение отдельно
  #2 (permalink)  
Старый 18.07.2016, 11:27
Аватар для Infarch
Профессор
Отправить личное сообщение для Infarch Посмотреть профиль Найти все сообщения от Infarch
 
Регистрация: 06.06.2014
Сообщений: 292

Немного покопался в коде экста. Сложилось такое впечатление что мои модели удалялись бы в правильном порядке, если бы я настроил ассоциации. Ладно, начал пробовать. Нашел вот такую статью: 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'
		}
	}

});
Ответить с цитированием