Как вызвать действие контроллера из столбца действий сетки

У меня есть столбец действий в моей сетке, который необходим для выполнения множества нетривиальных операций после щелчка по нему. Я не хочу использовать метод обработчика только для того, чтобы избежать дублирования в моем коде. Я хочу обработать событие щелчка из метода контроллера, который можно вызывать с нескольких сторон.

Вот мое определение столбца действий:

               {
                    header: translator.translate('actions'),
                    xtype: 'actioncolumn',
                    width: 50,
                    items:[{
                        id     : 'detailContactPerson',
                        icon   : '/resources/images/pencil.png',
                        tooltip: translator.translate('show_detail')
                    }]
                },

Но теперь я не знаю, как написать определение запроса компонента для настройки слушателя.

 init: function() {
    this.control({
       'detailContactPerson': {
           click: function(obj) {
                 var contactPerson = obj.up('container').contactPerson;
                 this.detail(contactPerson);
            }
         },

Второй способ, который я пробовал, - это вызвать метод контроллера напрямую из метода обработчика. Выглядит это так:

                  {
                    header: translator.translate('actions'),
                    xtype: 'actioncolumn',
                    width: 50,
                    items:[{
                        id     : 'detailContactPerson',
                        icon   : '/resources/images/pencil.png',
                        handler: function(contactPerson){
                            Project.controller.contactPerson.detail(contactPerson);
                        },
                        tooltip: translator.translate('show_detail')
                    }

Но, к сожалению, этот способ вызова метода контроллера не поддерживается (исключение метода не возникает).

Может ли кто-нибудь помочь мне создать рабочий запрос компонента или показать какой-нибудь пример, как вызвать метод контроллера извне?

9
задан elCarda 8 July 2011 в 14:11
поделиться