Показать сообщение отдельно
  #14 (permalink)  
Старый 15.08.2015, 01:26
Аватар для nohuhu
Профессор
Отправить личное сообщение для nohuhu Посмотреть профиль Найти все сообщения от nohuhu
 
Регистрация: 21.05.2015
Сообщений: 321

Сообщение от khusamov Посмотреть сообщение
Тема не закрыта. Не ясно как все-таки правильно делать! Как правильно задать путь к классу приложения.
Пардон, не заметил последние посты в этой теме.

Цитата:
Код в песочнице https://fiddle.sencha.com/#fiddle/rj5

Я задал путь к приложению:

appFolder: "/my/path/to/app"


Но контроллер Root почему-то загружается с другой папки. Это видно в консоли:

https://fiddle.sencha.com/app/controller/Root.js
Честно говоря, я никак не могу понять, что вы пытаетесь сделать и зачем мудрите с этими механизмами. Вызов Ext.application() сперва определяет новый класс, наследованный от Ext.app.Application или от указанного в конфиге, и создаёт экземпляр этого класса, когда все требуемые зависимости загрузились. Дальше по сценарию.

А в вашем случае, поскольку конфиг, переданный в Ext.application(), не наследует Kitchen.Application, то и пути не подставляются правильно. Я уже говорил ведь, что Ext.application() чудесатое? Ну вот вы и наткнулись на очередное подтверждение.

В общем, ещё более настоятельно рекомендую не лезть в дебри и просто пользоваться инструментами так, как они должны быть использованы. Примерно так:

// app.js
Ext.application({
    extend: 'Kitchen.Application',
    
    name: 'Kitchen',
    
    appFolder: "/path/to/app",

    launch: function() {
        console.log("launch in Ext.application");
    }
});

// /path/to/app/Application.js
Ext.define("Kitchen.Application", {
	extend: "Ext.app.Application",
	
	controllers: ["Root"],
	
	init: function() {
		console.log("Application init");
	},
	
	launch: function() {
		console.log("launch in Kitchen.Application");
	}
});

// /path/to/app/controller/Root.js
Ext.define('Kitchen.controller.Root', {
    extend: 'Ext.app.Controller',
    
    init: function() {
        console.log('Root controller init');
    }
});


В песочницу всё это добро загонять лениво, уж извините. Пятницо вечер. :)
Ответить с цитированием