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') ??? |
Надо было в 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 }, }); }, |
Рекомендую оставить прежние контроллеры для общесистемных действий и перейти на 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'); } } |
Часовой пояс GMT +3, время: 05:46. |