Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.09.2015, 12:55
Профессор
Отправить личное сообщение для potkin Посмотреть профиль Найти все сообщения от potkin
 
Регистрация: 23.08.2008
Сообщений: 162

Ext.form.field.Text событие в controller
ExtJS 6 ругается на xtype: "trigger", мол уже устарел и используйте вот это:
Ext.create('Ext.form.field.Text', {
    triggers: {
        foo: {
            cls: 'my-foo-trigger'
        }
    },
    fieldLabel: "xxx", name: 'yyy,
    
    itemId: "ValueXXX",
    onTriggerClick: function (e) { this.fireEvent("ontriggerclick", this, event); }
})

Раньше в контроллере, для xtype: "trigger", ловил событие по itemId и onTriggerClick так:
init: function () {
    this.control({
        'viewXXX #ValueXXX': { "ontriggerclick": this.onMyFunction },
    });
},

onMyFunction : function (...) {
}

А теперь не срабатывает перехват событий.
Может кто в курсе как перехватить событие для Ext.form.field.Text (cls: 'my-foo-trigger') ???
Ответить с цитированием
  #2 (permalink)  
Старый 03.09.2015, 15:33
Профессор
Отправить личное сообщение для potkin Посмотреть профиль Найти все сообщения от potkin
 
Регистрация: 23.08.2008
Сообщений: 162

Надо было в handler добавить fireEvent
View:
triggers: {
    foo: {
        cls: 'my-foo-trigger',
        handler: function () {
            console.log('foo');
            this.fireEvent("ontriggerclick", this, event);
        },
    }
}

Controller:
init: function () {
    this.control({
        'viewSysDirConstantsEditDir #SysDirConstantsValue': { "ontriggerclick": this.onTriggerGroupSubNameClick },
    });
},
Ответить с цитированием
  #3 (permalink)  
Старый 06.09.2015, 11:39
Профессор
Отправить личное сообщение для novikov Посмотреть профиль Найти все сообщения от novikov
 
Регистрация: 19.11.2012
Сообщений: 178

Рекомендую оставить прежние контроллеры для общесистемных действий и перейти на ViewController. Такие контроллеры создаются и уничтожаются вместе с представлениями.

Тогда достаточно написать:

View (определение поля в форме)

{
    xtype: 'textfield',
    reference: 'my-textfield',
    triggers: {
        foo: {
            cls: 'my-foo-trigger',
            handler: 'onTriggerClick'
        }
    }
}


документация

ViewController

{
    extend: 'Ext.app.ViewController',
    onTriggerClick: function() {
        var view = this.getView();
        var myTextField = this.lookupReference('my-textfield');
    }
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
клик и событие работает клик и это событие не работает Trues Элементы интерфейса 3 27.05.2015 09:28
Отличить событие, вызванное пользователем, от программного. upvasil Events/DOM/Window 6 22.10.2013 21:30
Событие click Гробовщик jQuery 1 31.07.2013 07:28
Как правильно подавить событие при подключении своего обработчика? Маэстро Firefox/Mozilla 2 03.09.2011 11:46
какое событие возникает во время формирования html IT-AleX Events/DOM/Window 2 20.02.2009 16:13