Я следовал этому примеру: http://dev.sencha.com/deploy/ext-4.0.2a/examples/dd/dnd_grid_to_grid.html
Так что с моей версией приложения я следую соглашениям MVC как можно ближе.Как и в примере выше, мое представление содержит слушателей, которые ловят события drop.Это прекрасно работает.
Но как я могу извлечь этот обработчик событий, чтобы я мог хранить весь свой «код» внутри контроллера?
Мой контроллер:
Ext.define('AM.controller.Cards', {
extend: 'Ext.app.Controller',
stores: ['BacklogCards', 'InprogressCards', 'ReviewCards', 'DoneCards', 'Priorities', 'Sizes'],
models: ['Card', 'Priority', 'Size'],
views: ['card.List', 'priority.prioritycombo'],
init: function () {
this.control({
'cardlist dataview': {
itemdblclick: this.editUser
},
'cardlist': {
edit: this.inlineUpdateUser,
drop: this.dropit
}
});
},
dropit: function () {
alert("in");
},
Я надеялся, что это сработает, но кажется, что обработчик события удаления работает только из представления.
представление:
viewConfig: {
plugins: {
ptype: 'gridviewdragdrop',
dragGroup: 'firstGridDDGroup',
dropGroup: 'firstGridDDGroup'
},
listeners: {
drop: function (node, data, dropRec, dropPosition) {
var dropOn = dropRec ? ' ' + dropPosition + ' ' + dropRec.get('name') : ' on empty view';
alert("Drag from right to left " + data.records[0].get('name') + " " + dropOn);
}
}
},
Спасибо