Показать сообщение отдельно
  #4 (permalink)  
Старый 04.12.2014, 11:57
Аспирант
Отправить личное сообщение для treasury Посмотреть профиль Найти все сообщения от treasury
 
Регистрация: 26.08.2014
Сообщений: 49

Сообщение от Infarch Посмотреть сообщение
В контроллере можно. И даже нужно. Просто указываете что листенеры работают в контроллере и пишете все функции там:

listeners: {
	itemclick: {
		fn: 'onDataviewSelectConfigure',
		single: false
	},
	select: 'onDataviewSelect',
	scope: 'controller' // <------------------
}


А зачем вы пишете "single: false"? Это ведь как бы по умолчанию следует. Другое дело если "true"...
У меня что-то не получается ни так ни так. Я правильно понимаю, что здесь вы говорите о ViewController? Т.е. если я добавляю во view строчку scope: 'controller' , я говорю что обработчик у меня будет реализован в viewController. Я сделал:
listeners: {
                        itemclick: {
                            fn: 'onDataviewSelectConfigure',
                            scope: 'controller'
                        },
                        select: {
                            fn: 'onDataviewSelect',
                            scope: 'controller'
                        }

                    }

Далее во viewController:
Ext.define('MyApp.view.MainViewController', {
    extend: 'Ext.app.ViewController',
    alias: 'controller.main',

onDataviewSelect: function(dataview, record, eOpts) {
        console.log("OK");
    },
});

Далее в консоле такое: Uncaught TypeError: Cannot read property 'apply' of undefined
Что еще нужно поправить?
Ответить с цитированием