У меня есть простой код здесь. Он создает приложение под названием «MyApp» и определяет контроллер под названием «MyController». MyController затем передается в качестве конфигурации в приложение.Не удается получить доступ к контроллерам извне объекта
function onDeviceReady() {
alert('In onDeviceReady() function');
MyApp.app.getController('MyController').somefunction();
// MyApp.controller.MyController.somefunction()
}
Ext.application({
name: 'MyApp',
controllers: ['MyController']
});
Ext.define('MyApp.controller.MyController', {
extend: 'Ext.app.Controller',
init: function() {
alert('Login controller');
onDeviceReady();
},
somefunction:function(){
alert ('some function callled')
}
});
Пока все хорошо. Типичный стандартный материал. Теперь после вызова «init» из MyController я вызываю какой-то внешний метод onDevideReady. Из этого метода я хочу снова получить доступ к моему контроллеру. .
Я пытался среди прочего:
- MyApp.app.getController ('') MyController SomeFunction();
- MyApp.controller.MyController.somefunction()
Но ни одна из этих вещей, кажется, работают ... Я также использую Extjs 4,1, который может быть проблемой. В основном я хочу, чтобы каким-то образом получить доступ к моим контроллерам внутри моего кода (не обязательно из другого контроллера)
Вот скрипка проблемы:
https://fiddle.sencha.com/#fiddle/1jjh
да, я бы хотел выйти из Extjs 4. Архитектура MVC в 5+ намного лучше :). Архитектура MVC в 4 действительно ужасна. –