У меня возникли проблемы со следующим кодом:
Ext.define('...controller...', {
extend: 'Ext.app.Controller',
init: function() {
...
},
crearLoginWindow:function(){
var loginWindow = Ext.create('Proto1.view.adminbd.LoginWindowBDView', {
itemId: 'loginwindow',
autoShow: true,
modal: true
});
Ext.ComponentQuery.query('#loginwindow > button[text="Cancelar"]')[0].on('click', function(){loginWindow.close()});
//Cant call 'enviarLogin' function if its inside 'crearLoginWindow'
Ext.ComponentQuery.query('#loginwindow > button[text="Conectar"]')[0].on('click', this.enviarLogin, this);
var enviarLogin = function(){
console.log('login')
}
}
});
Я хочу иметь возможность вызывать 'enviarLogin' внутри функции 'crearLoginWindow', но она выдает ошибку ссылки. Если функция находится вне crearLoginWindow, она будет работать.
Эти две строки являются источником неприятностей:
Ext.ComponentQuery.query('#loginwindow > button[text="Conectar"]')[0].on('click', this.enviarLogin, this);
var enviarLogin = function(){
console.log('login')
}
Я пробовал разные варианты контекста, такие как;
Ext.ComponentQuery.query('#loginwindow > button[text="Conectar"]')[0].on('click', this.crearLoginWindow.enviarLogin);
this.enviarLogin = function(){
console.log('login')
}
Что имеет смысл, исходя из того, что, как мне кажется, я понимаю о области действия и необходимости указывать место, где находится функция для ее выполнения.
Буду признателен за решение, потому что эта проблема делает мой код очень грязным!