Я просто понял, что альтернативные имена классов для контроллеров в ExtJS 4.2.1 не работают так, как я ожидал их:Альтернативное название класса контроллера
Ext.define('AppName.controller.subnamespace.Controller1', {
extend: 'Ext.app.Controller',
alternateClassName: 'AppName.Ctrl1',
// ...
});
Доступ к контроллеру с помощью метода getController из приложения (или любой контроллер) работает для обоих имен (длинный один & альтернативный один), но возвращает 2 отдельные экземпляры контроллера:
var ctrlInstance1 = AppName.app.getController('AppName.controller.subnamespace.Controller1'),
ctrlInstance2 = AppName.app.getController('AppName.Ctrl1');
console.log(ctrlInstance1 === ctrlInstance2); // --> false
Является ли это предназначено поведение или ошибку? Если его ошибка, я собираюсь подать отчет об ошибке ...
Благодарности
Ps .: Я также задал этот вопрос в официальных форумах Сенча, но не получил никакого ответ до сих пор: http://www.sencha.com/forum/showthread.php?271970-Alternate-class-name-in-controller
Я полностью понимаю, о чем вы говорите, и все еще считаете, что существуют определенные ситуации, когда эти альтернативные имена классов являются отличным инструментом, если они используются тщательно и последовательно и могут действительно улучшить читаемость кода таким образом, который оправдывает негативное влияние, которое он оказывает на условия ремонтопригодности. – suamikim
Можете ли вы дать мне прецедент? Пока я не вижу, как эта функция может быть полезна для контроллеров. –
Я не могу в разделе комментариев здесь, потому что он занимает чуть больше 550 символов, но на самом деле я уже разместил его на форуме Sencha: http://www.sencha.com/forum/showthread.php?271970 -Alternate-class-name-in-controller & p = 997150 & viewfull = 1 # post997150 – suamikim